文章目录
模型
用了KMeans、DBSCAN、层次聚类法
KMeans模型
class sklearn.cluster.KMeans(n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=0.0001, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=1)
重要的指标:n_clusters
聚成几类
DBSCAN模型
class sklearn.cluster.DBSCAN(eps=0.5, min_samples=5, metric='euclidean', algorithm='auto', leaf_size=30, p=None, random_state=None)
重要的指标:eps
半径、min_samples
半径之内的最小样本数
层次聚类模型
class sklearn.cluster.AgglomerativeClustering(n_clusters=2, affinity='euclidean', memory=Memory(cachedir=None), connectivity=None, n_components=None, compute_full_tree='auto', linkage='ward')
重要的指标:n_clusters
聚成几类
有自上而下分层次的,也有自下而上分层次的
sklearn中的聚类模型
sklearn.cluster
类库
评价指标
sklearn.metrics
类库
这里选用homogeneity_completeness_v_measure
,输出
homogeneity
、completeness
、v_measure
,v_measure
是homogeneity
、completeness
的调和平均数
数据
import pandas as pd
import numpy as np
rawdata = pd.read_csv(r"..\Data\cluster_N.csv")
X = rawdata.iloc[:,0:-1]
Y = rawdata.iloc[:,-1]
没有缺失值和异常值,暂时不特征选择
这个数据是有真实标签的,依据真实标签对聚类效果的评价
建模
Kmeans建模+评价
from sklearn.cluster import KMeans, DBSCAN, AgglomerativeClustering
from sklearn.metrics import homogeneity_completeness_v_measure
def run_kmeans_model():
model = KMeans(n_clusters