Python DBSCAN 집합 알고리즘 및 샘플 테스트 실현
집합 은 기계 학습 기술 로 데이터 점 의 그룹 과 관련된다.한 그룹의 데이터 점 을 지정 하면 우 리 는 집합 알고리즘 을 사용 하여 모든 데이터 점 을 특정한 그룹 으로 나 눌 수 있다.이론 적 으로 같은 그룹의 데이터 점 은 비슷 한 속성 과/또는 특징 을 가 져 야 하고 서로 다른 그룹의 데이터 점 은 고도 로 다른 속성 과/또는 특징 을 가 져 야 한다.집합 은 감독 없 이 학습 하 는 방법 으로 많은 분야 에서 자주 사용 하 는 통계 데이터 분석 기술 이다.
상용 알고리즘 은 K-MEANS,가우스 혼합 모델(Gaussian Mixed Model,GMM),자체 조직 매 핑 신경 망(Self-Organizing Map,SOM)을 포함한다.
파 이 썬 이 DBSCAN 집합 알고리즘 을 실현 하고 간단 한 사례 테스트 를 통 해
고밀도 의 핵심 샘플 을 발견 하고 그 중에서 팽창 덩어리 를 발견 하 다.
Python 코드 는 다음 과 같 습 니 다:
# -*- coding: utf-8 -*-
"""
Demo of DBSCAN clustering algorithm
Finds core samples of high density and expands clusters from them.
"""
print(__doc__)
#
import numpy as np
from sklearn.cluster import DBSCAN
from sklearn import metrics
from sklearn.datasets.samples_generator import make_blobs
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
#
centers = [[1, 1], [-1, -1], [1, -1]]
X, labels_true = make_blobs(n_samples=750, centers=centers, cluster_std=0.4,
random_state=0)
X = StandardScaler().fit_transform(X)
# DBSCAN
db = DBSCAN(eps=0.3, min_samples=10).fit(X)
core_samples_mask = np.zeros_like(db.labels_, dtype=bool)
core_samples_mask[db.core_sample_indices_] = True
labels = db.labels_
#
n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)
n_noise_ = list(labels).count(-1)
print('Estimated number of clusters: %d' % n_clusters_)
print('Estimated number of noise points: %d' % n_noise_)
print("Homogeneity: %0.3f" % metrics.homogeneity_score(labels_true, labels))
print("Completeness: %0.3f" % metrics.completeness_score(labels_true, labels))
print("V-measure: %0.3f" % metrics.v_measure_score(labels_true, labels))
print("Adjusted Rand Index: %0.3f"
% metrics.adjusted_rand_score(labels_true, labels))
print("Adjusted Mutual Information: %0.3f"
% metrics.adjusted_mutual_info_score(labels_true, labels,
average_method='arithmetic'))
print("Silhouette Coefficient: %0.3f"
% metrics.silhouette_score(X, labels))
#
unique_labels = set(labels)
colors = [plt.cm.Spectral(each)
for each in np.linspace(0, 1, len(unique_labels))]
for k, col in zip(unique_labels, colors):
if k == -1:
col = [0, 0, 0, 1]
class_member_mask = (labels == k)
xy = X[class_member_mask & core_samples_mask]
plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=tuple(col),
markeredgecolor='k', markersize=14)
xy = X[class_member_mask & ~core_samples_mask]
plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=tuple(col),
markeredgecolor='k', markersize=6)
plt.title('Estimated number of clusters: %d' % n_clusters_)
plt.show()
테스트 결 과 는 다음 과 같다.최종 결과 그림 그리 기:
구체 적 인 데이터:
이상 은 Python 이 DBSCAN 집합 알고리즘(간단 한 사례 테스트)을 실현 하 는 상세 한 내용 입 니 다.Python 집합 알고리즘 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.