机器学习之路:python 特征降维 主成分分析 PCA

python3 学习api使用

主成分分析方法实现降低维度

使用了网络上的数据集,我已经下载到了本地,可以去我的git上参考

git:https://github.com/linyi0604/MachineLearning

代码:

 1 from sklearn.svm import LinearSVC
 2 from sklearn.metrics import classification_report
 3 from sklearn.decomposition import  PCA
 4 import pandas as pd
 5 import numpy as np
 6 ‘‘‘
 7 主成分分析:
 8     特征降低维度的方法。
 9     提取主要特征成分,有关联的特征进行运算组合
10     丢弃不显著的特征成分, 同时可能损失有意义的特征
11     实现降低特征维度
12 api使用:
13     estimator = PCA(n_components=20)
14     pca_x_train = estimator.fit_transform(x_train)
15     pca_x_test = estimator.transform(x_test)
16
17 分别使用支持向量机进行学习降维前后的数据再预测
18
19 该数据集源自网上 https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/
20 我把他下载到了本地
21 训练样本3823条, 测试样本1797条
22 图像通过8*8像素矩阵表示共64个维度,1个目标维度表示数字类别
23
24 ‘‘‘
25
26 # 1 准备数据
27 digits_train = pd.read_csv("./data/optdigits/optdigits.tra", header=None)
28 digits_test = pd.read_csv("./data/optdigits/optdigits.tes", header=None)
29 # 从样本中抽取出64维度像素特征和1维度目标
30 x_train = digits_train[np.arange(64)]
31 y_train = digits_train[64]
32 x_test = digits_test[np.arange(64)]
33 y_test = digits_test[64]
34
35 # 2 对图像数据进行降维,64维度降低到20维度
36 estimator = PCA(n_components=20)
37 pca_x_train = estimator.fit_transform(x_train)
38 pca_x_test = estimator.transform(x_test)
39
40 # 3.1 使用默认配置的支持向量机进行学习和预测未降维的数据
41 svc = LinearSVC()
42 # 学习
43 svc.fit(x_train, y_train)
44 # 预测
45 y_predict = svc.predict(x_test)
46
47 # 3.2 使用默认配置的支持向量机学习和预测降维后的数据
48 pca_svc = LinearSVC()
49 # 学习
50 pca_svc.fit(pca_x_train, y_train)
51 pca_y_predict = pca_svc.predict(pca_x_test)
52
53 # 4 模型评估
54 print("原始数据的准确率:", svc.score(x_test, y_test))
55 print("其他评分:\n", classification_report(y_test, y_predict, target_names=np.arange(10).astype(str)))
56
57 print("降维后的数据准确率:", pca_svc.score(pca_x_test, y_test))
58 print("其他评分:\n", classification_report(y_test, pca_y_predict, target_names=np.arange(10).astype(str)))
59
60 ‘‘‘
61 原始数据的准确率: 0.9165275459098498
62 其他评分:
63               precision    recall  f1-score   support
64
65           0       0.98      0.98      0.98       178
66           1       0.73      0.99      0.84       182
67           2       0.98      0.97      0.98       177
68           3       0.96      0.88      0.92       183
69           4       0.94      0.95      0.95       181
70           5       0.91      0.96      0.93       182
71           6       0.99      0.96      0.98       181
72           7       0.98      0.92      0.95       179
73           8       0.84      0.79      0.81       174
74           9       0.94      0.76      0.84       180
75
76 avg / total       0.92      0.92      0.92      1797
77
78 降维后的数据准确率: 0.9220923761825265
79 其他评分:
80               precision    recall  f1-score   support
81
82           0       0.97      0.97      0.97       178
83           1       0.93      0.86      0.89       182
84           2       0.96      0.97      0.96       177
85           3       0.93      0.87      0.90       183
86           4       0.94      0.97      0.96       181
87           5       0.86      0.96      0.91       182
88           6       0.97      0.98      0.98       181
89           7       0.97      0.88      0.92       179
90           8       0.89      0.89      0.89       174
91           9       0.82      0.88      0.85       180
92
93 avg / total       0.92      0.92      0.92      1797
94 ‘‘‘

原文地址:https://www.cnblogs.com/Lin-Yi/p/8973077.html

时间: 2024-10-13 16:52:49

机器学习之路:python 特征降维 主成分分析 PCA的相关文章

sklearn 特征降维利器 —— PCA TSNE

同为降维工具,二者的主要区别在于, 所在的包不同(也即机制和原理不同) from sklearn.decomposition import PCA from sklearn.manifold import TSNE 因为原理不同,导致,tsne 保留下的属性信息,更具代表性,也即最能体现样本间的差异: TSNE 运行极慢,PCA 则相对较快: 因此更为一般的处理,尤其在展示(可视化)高维数据时,常常先用 PCA 进行降维,再使用 tsne: data_pca = PCA(n_components

机器学习之路: python k近邻分类器 鸢尾花分类预测

使用python语言 学习k近邻分类器的api 欢迎来到我的git查看源代码: https://github.com/linyi0604/kaggle 1 from sklearn.datasets import load_iris 2 from sklearn.cross_validation import train_test_split 3 from sklearn.preprocessing import StandardScaler 4 from sklearn.neighbors i

机器学习之路: python 决策树分类 预测泰坦尼克号乘客是否幸存

使用python3 学习了决策树分类器的api 涉及到 特征的提取,数据类型保留,分类类型抽取出来新的类型 需要网上下载数据集,我把他们下载到了本地, 可以到我的git下载代码和数据集: https://github.com/linyi0604/MachineLearning 1 import pandas as pd 2 from sklearn.cross_validation import train_test_split 3 from sklearn.feature_extraction

机器学习之路: python 线性回归LinearRegression, 随机参数回归SGDRegressor 预测波士顿房价

python3学习使用api 线性回归,和 随机参数回归 git: https://github.com/linyi0604/MachineLearning 1 from sklearn.datasets import load_boston 2 from sklearn.cross_validation import train_test_split 3 from sklearn.preprocessing import StandardScaler 4 from sklearn.linear

机器学习之路: python 回归树 DecisionTreeRegressor 预测波士顿房价

python3 学习api的使用 git: https://github.com/linyi0604/MachineLearning 代码: 1 from sklearn.datasets import load_boston 2 from sklearn.cross_validation import train_test_split 3 from sklearn.preprocessing import StandardScaler 4 from sklearn.tree import De

机器学习——降维(主成分分析PCA、线性判别分析LDA、奇异值分解SVD、局部线性嵌入LLE)

机器学习--降维(主成分分析PCA.线性判别分析LDA.奇异值分解SVD.局部线性嵌入LLE) 以下资料并非本人原创,因为觉得石头写的好,所以才转发备忘 (主成分分析(PCA)原理总结)[https://mp.weixin.qq.com/s/XuXK4inb9Yi-4ELCe_i0EA] 来源:?石头?机器学习算法那些事?3月1日 主成分分析(Principal components analysis,以下简称PCA)是最常用的降维方法之一,在数据压缩和消除冗余方面具有广泛的应用,本文由浅入深的

ng机器学习视频笔记(十二) ——PCA实现样本特征降维

ng机器学习视频笔记(十二) --PCA实现样本特征降维 (转载请附上本文链接--linhxx) 一.概述 所谓降维(dimensionality reduction),即降低样本的特征的数量,例如样本有10个特征值,要降维成5个特征值,即通过一些方法,把样本的10个特征值映射换算成5个特征值. 因此,降维是对输入的样本数据进行处理的,并没有对预测.分类的结果进行处理. 降维的最常用的方法叫做主成分分析(PCA,principal component analysis).最常用的业务场景是数据压

【机器学习】Sklearn库主成分分析PCA降维的运用实战

1.PCA分类介绍 在scikit-learn中,与PCA相关的类都在sklearn.decomposition包中.最常用的PCA类就是sklearn.decomposition.PCA. 原理:线性映射(或线性变换),简单的来说就是将高维空间数据投影到低维空间上,那么在数据分析上,我们是将数据的主成分(包含信息量大的维度)保留下来,忽略掉对数据描述不重要的成分.即将主成分维度组成的向量空间作为低维空间,将高维数据投影到这个空间上就完成了降维的工作. 除了PCA类以外,最常用的PCA相关类还有

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA) 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分类器最简单的就是