这些不同模型的使用方法是大同小异的,都是基本先使用对应的函数建立模型,然后用.fit()方法来训练模型,训练好之后,就可以用.label_方法给出样本数据的标签,或者用.predict()方法预测新的输入标签.
此外,Scipy库也提供了一个聚类子库scipy.cluster,里边提供了一些聚类算法,如层次聚类等,但没有Scikit-Learn那么完善和丰富.scipy.cluster的好处黑丝它的函数名和功能基本根python时一一对应的,如层次聚类的linkage,dendrogram等,因此已经熟悉python的朋友,可疑尝试使用Scipy提供的聚类库.
#-*- coding:utf-8 -*-
importsys
reload(sys)
sys.setdefaultencoding("utf-8")"""使用神经网络算法预测销量高低"""
from sklearn.manifold importTSNEimportpandas as pd
k= 3 #聚类的类别
iteration = 500 #聚类最大循环次数
data= pd.read_csv("sales_bak.csv", sep="\t",header=None,
names=["a", "b", "c"]) #读取csv中的数据
data_zs = 1.0 * (data - data.mean()) / data.std() #数据标准化
tsne = TSNE() #实例化一个TENS空白的对象
tsne.fit_transform(data_zs) #进行数据降维
tsne = pd.DataFrame(tsne.embedding_,index = data_zs.index) #转换数据格式
importmatplotlib.pyplot as plt
plt.rcParams['font,sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['zxes.unicode_minus'] = False #用来正常显示负号
d = tsne[r[u'聚类类别'] ==0 ]
plt.plot(d[0], d[1], 'r.')
d= tsne[r[u'聚类类别'] == 1]
plt.plot(d[0], d[1], 'go')
d= tsne[r[u'聚类类别'] == 2]
plt.plot(d[0], d[1], 'b*')
plt.show()