PCA主成分分析应用

醉酒当歌 提交于 2020-03-08 18:28:03
  • 主成分分析

  • PCA降维
    Notes:

  • KNN(K-NearstNeighor)有监督算法(近邻个数);

  • KMeans无监督算法(最终聚类的个数/分成K类)

  • 决策边界:

  • datasets:

    • 数据集载入 :load_digits()
      • .data / .target / .target_names
      • .images:张数1792 X 每张尺寸(8X8)
  • PCA降维:

    • fit_transform()返回降维后的数据
    • fit()仅 返回模型参数
  • 可视化:

    • 灰度图:plt.imshow(image,cmap=plt.cm.gray_r)

    手写数字识别聚类:

     #手写数字数据集 1797张 8X8
     from sklearn import decomposition
     from sklearn.cluster import KMeans
     digits_data = datasets.load_digits()		#载入数据集
     X = digits_data.data 		#X.shape=>(1797,64)
     y = digits_data.target
     #降维
     estimator = decomposition.PCA(n_components=2)
     reduce_data = estimator.fit_transform(X)
     #训练
     model = KMeans(n_clusters=10).fit(reduce_data)
     #坐标网格矩阵
     x_min,x_max  = reduce_data[:,0].min() -1,reduce_data[:,0].max() +1
     y_min,y_max = reduce_data[:,1].min() -1,reduce_data[:,1].max() +1 
     xx,yy = np.meshgrid(np.arange(x_min,x_max,.05),np.arange(y_min,y_max,.05))
     #预测,结果可视
     result = model.predict(np.c_[xx.ravel(),yy.ravel()])
     result = result.reshape(xx.shape)
     plt.figure(figsize=(10,5))
     plt.contourf(xx,yy,result,cmap=plt.cm.Greys)
     plt.scatter(reduce_data[:,0],reduce_data[:,1],c=y,s=15)
     center = model.cluster_centers_
     plt.scatter(center[:,0],center[:,1],marker='p',lw=2,color='b',edgecolors='w',zorder=20)
     plt.xlim(x_min,x_max),plt.ylim(y_min,y_max)
    

在这里插入图片描述
评估:

  • 随机森林分类
  • 交叉验证(cv = 5)
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
estimator = decomposition.PCA(n_components=5) # 从 10 个特征缩减为 5 个特征
X_pca = estimator.fit_transform(X)
model = RandomForestClassifier()
cross_val_score(model,X,y,cv=5).mean()

总结: 原始数据集PCA降维(/数据预处理)-聚类

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!