之前也做过聚类,只不过是用经典数据集,这次是拿的实际数据跑的结果,效果还可以,记录一下实验过程。
首先:
确保自己数据集是否都完整,不能有空值,最好也不要出现为0的值,会影响聚类的效果。
其次:
想好要用什么算法去做,K-means,层次聚类还是基于密度算法,如果对这些都不算特别深入了解,那就都尝试一下吧,我就是这样做的。
好了,简单开始讲解实验的过程吧。
第一步
环境:
Windows10 + Anaconda3 + Pycharm
为了避免中文编码错误,在python文件上加一句中文编码设置代码:
#-*- coding:utf-8 -*-
并且在Pycharm下修改编码设置,安心。方法如下:
在Pycharm下打开你的项目,左上角File–>Settings–>Editor–>File Encodings
点击那个+号先把你的项目添加进来,然后按照上面截图将编码格式改成UTF-8,点击Apply,再点OK。这样编码错误就不会出现了,如果读入的文件含有中文还是出现编码错误,那就是你保存的文件编码格式不对,去修改文件保存的编码格式,自行百度。
一些库的准备:
import pandas as pd
from sklearn.cluster import KMeans #导入K均值聚类算法
from sklearn.cluster import AgglomerativeClustering #层次聚类
from sklearn.cluster import DBSCAN #具有噪声的基于密度聚类方法
import matplotlib.pyplot as plt #matplotlib画图
from sklearn.decomposition import PCA #主成分分析
from mpl_toolkits.mplot3d import Axes3D #画三维图
这些库都有注释,想了解详细自己去看官方文档。
第二步
贴上了完整的代码,只需要改文件路径就可以了。
#-*- coding:utf-8 -*-
import pandas as pd
from sklearn.cluster import KMeans #导入K均值聚类算法
from sklearn.cluster import AgglomerativeClustering #层次聚类
from sklearn.cluster import DBSCAN #具有噪声的基于密度聚类方法
import matplotlib.pyplot as plt #matplotlib画图
from sklearn.decomposition import PCA #主成分分析
from mpl_toolkits.mplot3d import Axes3D #画三维图
pltcolor=['b<', 'g>', 'r1', 'c2', 'm3', 'y4', 'ks'