[2019년 7월 25일] 어떤 기계 학습 클러스터링 방법은 DBSCAN 학습하고 응용 프로그램을 감독하지

(123)

 

오기 NP AS NumPy와
 오기 SKC AS sklearn.cluster
 에서 sklearn를 가져 메트릭
 가져 오기 PLT AS matplotlib.pyplot 

mac2id = 딕셔너리 () 
onlinetimes = [] 
F = 열기 ( ' D : \ python_source \ Machine_study \ MOOC 코스 데이터 \ 프로그램 데이터 \ 클러스터링 \ 학생 개월 시간 온라인 유통 -TestData.txt ' , 인코딩 = ' UTF-8 ' )
 에 대한 라인 F :  = line.split ( ' , ' ) [2] # 얻을 MAC 주소 
    onlinetime = INT (line.split ( ', ' ) [6]) #의 액세스 시간 (초) 
    startTime을 = INT (line.split ( ' , ' [. 4) .split ( '  ' ) .split ([1.] ' : ' ) [0]) # 소스 데이터 2014-07-2022 : 44 : 18.540000000 22은 추출 된 
    IF MAC 없음  mac2id : 
        mac2id [MAC] = LEN (onlinetimes) #의 사전 키 맥 ?? 부가가치 때 인터넷 접속 시간과 긴 / 0,1,2,3,4,5,6,7 
        onlinetimes.append (onlinetime (startTime을)) 

    그렇지 않으면 : 
        onlinetimes [mac2id [MAC] = [(startTime을 onlinetime)] 

real_XNp.array = (onlinetimes) .reshape (. (- 1, 2)) # 2 차원 배열 

X- = real_X [. 0, 1] # 1 시점부터 추출 
# 개 . S의 = np.log (real_X + 1을 : 1]), 대수 변환 
#의 출력 (S) 
DB = skc.DBSCAN (EPS = 0.01 = 20 min_samples이다 ) .fit (X-) 

# Lables 각 데이터 클러스터 라벨로서 
Lables = db.labels_ 

인쇄 ( ' Lables은 : ' )
 전단 (Lables) #에게 태그의 7 종류 
# 출력 잡음 비율 
라이토 렌 (Lables [Lables [:] == -1] =) / LEN (Lables)
 인쇄 ( " 잡음 라이토 : ' , 형식 (라이토, ' 0.2 %' )) 

N_clusters = LEN (SET (Lables)) - (1. IF -1 에서 Lables 다른 0) #의 소음 -1, 소음, 6 급 == 7-1가있는 경우 

인쇄 ( ' 클러스터의 예상 nuber % D ' %의 n_clusters)
 인쇄 ( " silhouetts입니다 계수 %의 0.3f " %의 metrics.silhouette_score (X-, Lables)) #의 클러스터링 유효성 

에 대한 I 범위 (n_clusters) :
     인쇄 ( ' 클러스터 ' , I, ' : ' )
     인쇄(리스트 (X [lables == I] .flatten ())) 

plt.hist (X, 24 ) 
plt.show ()

 렌더링

추천

출처www.cnblogs.com/ymzm204/p/11273071.html