主成分分析:
降低特征维度的方法。
不会抛弃某一列特征,
而是利用线性代数的计算,将某一维度特征投影到其他维度上去,
尽量小的损失被投影的维度特征
api使用:
estimator = PCA(n_components=20)
pca_x_train = estimator.fit_transform(x_train)
pca_x_test = estimator.transform(x_test) 分别使用支持向量机进行学习降维前后的数据再预测 该数据集源自网上 https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/
我把他下载到了本地
训练样本3823条, 测试样本1797条
图像通过8*8像素矩阵表示共64个维度,1个目标维度表示数字类别

python3 学习api使用

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

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

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

代码:

 from sklearn.svm import LinearSVC
from sklearn.metrics import classification_report
from sklearn.decomposition import PCA
import pandas as pd
import numpy as np # 博文: http://www.cnblogs.com/Lin-Yi/p/8973077.html '''
主成分分析:
降低特征维度的方法。
不会抛弃某一列特征,
而是利用线性代数的计算,将某一维度特征投影到其他维度上去,
尽量小的损失被投影的维度特征 api使用:
estimator = PCA(n_components=20)
pca_x_train = estimator.fit_transform(x_train)
pca_x_test = estimator.transform(x_test) 分别使用支持向量机进行学习降维前后的数据再预测 该数据集源自网上 https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/
我把他下载到了本地
训练样本3823条, 测试样本1797条
图像通过8*8像素矩阵表示共64个维度,1个目标维度表示数字类别 ''' # 1 准备数据
digits_train = pd.read_csv("../data/optdigits/optdigits.tra", header=None)
digits_test = pd.read_csv("../data/optdigits/optdigits.tes", header=None)
# 从样本中抽取出64维度像素特征和1维度目标
x_train = digits_train[np.arange(64)]
y_train = digits_train[64]
x_test = digits_test[np.arange(64)]
y_test = digits_test[64] # 2 对图像数据进行降维,64维度降低到20维度
estimator = PCA(n_components=20)
pca_x_train = estimator.fit_transform(x_train)
pca_x_test = estimator.transform(x_test) # 3.1 使用默认配置的支持向量机进行学习和预测未降维的数据
svc = LinearSVC()
# 学习
svc.fit(x_train, y_train)
# 预测
y_predict = svc.predict(x_test) # 3.2 使用默认配置的支持向量机学习和预测降维后的数据
pca_svc = LinearSVC()
# 学习
pca_svc.fit(pca_x_train, y_train)
pca_y_predict = pca_svc.predict(pca_x_test) # 4 模型评估
print("原始数据的准确率:", svc.score(x_test, y_test))
print("其他评分:\n", classification_report(y_test, y_predict, target_names=np.arange(10).astype(str))) print("降维后的数据准确率:", pca_svc.score(pca_x_test, y_test))
print("其他评分:\n", classification_report(y_test, pca_y_predict, target_names=np.arange(10).astype(str))) '''
原始数据的准确率: 0.9165275459098498
其他评分:
precision recall f1-score support 0 0.98 0.98 0.98 178
1 0.73 0.99 0.84 182
2 0.98 0.97 0.98 177
3 0.96 0.88 0.92 183
4 0.94 0.95 0.95 181
5 0.91 0.96 0.93 182
6 0.99 0.96 0.98 181
7 0.98 0.92 0.95 179
8 0.84 0.79 0.81 174
9 0.94 0.76 0.84 180 avg / total 0.92 0.92 0.92 1797 降维后的数据准确率: 0.9220923761825265
其他评分:
precision recall f1-score support 0 0.97 0.97 0.97 178
1 0.93 0.86 0.89 182
2 0.96 0.97 0.96 177
3 0.93 0.87 0.90 183
4 0.94 0.97 0.96 181
5 0.86 0.96 0.91 182
6 0.97 0.98 0.98 181
7 0.97 0.88 0.92 179
8 0.89 0.89 0.89 174
9 0.82 0.88 0.85 180 avg / total 0.92 0.92 0.92 1797
'''

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

  1. 机器学习之路:python 特征降维 特征筛选 feature_selection

    特征提取: 特征降维的手段 抛弃对结果没有联系的特征 抛弃对结果联系较少的特征 以这种方式,降低维度 数据集的特征过多,有些对结果没有任何关系,这个时候,将没有关系的特征删除,反而能获得更好的预测结果 ...

  2. 特征降维之PCA

    目录 PCA思想 问题形式化表述 PCA之协方差矩阵 协方差定义 矩阵-特征值 PCA运算步骤 PCA理论解释 最大方差理论 性质 参数k的选取 数据重建 主观理解 应用 代码示例 PCA思想 PCA ...

  3. sklearn 特征降维利器 —— PCA & TSNE

    同为降维工具,二者的主要区别在于, 所在的包不同(也即机制和原理不同) from sklearn.decomposition import PCA from sklearn.manifold impo ...

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

    python3 学习api的使用 git: https://github.com/linyi0604/MachineLearning 代码: from sklearn.datasets import ...

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

    python3学习使用api 线性回归,和 随机参数回归 git: https://github.com/linyi0604/MachineLearning from sklearn.datasets ...

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

    使用python3 学习了决策树分类器的api 涉及到 特征的提取,数据类型保留,分类类型抽取出来新的类型 需要网上下载数据集,我把他们下载到了本地, 可以到我的git下载代码和数据集: https: ...

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

    使用python语言 学习k近邻分类器的api 欢迎来到我的git查看源代码: https://github.com/linyi0604/MachineLearning from sklearn.da ...

  8. 机器学习之路--Python

    常用数据结构 1.list 列表 有序集合 classmates = ['Michael', 'Bob', 'Tracy'] len(classmates) classmates[0] len(cla ...

  9. 什么是机器学习的特征工程?【数据集特征抽取(字典,文本TF-Idf)、特征预处理(标准化,归一化)、特征降维(低方差,相关系数,PCA)】

    2.特征工程 2.1 数据集 2.1.1 可用数据集 Kaggle网址:https://www.kaggle.com/datasets UCI数据集网址: http://archive.ics.uci ...

随机推荐

  1. ARM Linux 3.x的设备树(Device Tree)【转】

    转自:http://blog.csdn.net/21cnbao/article/details/8457546 宋宝华 Barry Song <21cnbao@gmail.com> 1.  ...

  2. python3 切换工作文件夹

    python3 默认的工作文件夹在Python安装路径下.如下为查看工作文件夹路径: >>> import os >>> os.getcwd() 'D:\\Work ...

  3. URIEncoding与useBodyEncodingForURI 在tomcat中文乱码处理上的区别

    大家知道tomcat5.0开始,对网页的中文字符的post或者get,经常会出现乱码现象. 具体是因为Tomcat默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括中文字符,这样 ...

  4. Scrapy官网程序执行示例

    Windows 10家庭中文版本,Python 3.6.4,Scrapy 1.5.0, Scrapy已经安装很久了,前面也看了不少Scrapy的资料,自己尝试使其抓取微博的数据时,居然连登录页面(首页 ...

  5. C# 托管资源 与 非托管资源

    C# 托管资源 与 非托管资源 托管资源一般是指被CLR控制的内存资源,这些资源的管理可以由CLR来控制,.NET可以自动进行回收,主要是指托管堆上分配的内存资源.例如程序中分配的对象,作用域内的变量 ...

  6. 【前端vue开发】Hbuilder配置Avalon、AngularJS、Vue指令提示

    偶尔也会研究一下前端内容,因为Hbuilder是基于eclipse开发的,所以用起来倍感亲切啊,而且在我尝试使用的几款前端开发工具中,Hbuilder的表现也是相当出色地,可以访问Huilder官网下 ...

  7. 【web开发】web前端开发常用技术总结归纳

    技术选型规范规范 • Vue版本:2.x • 前端路由:vue-route • 异步请求:Axios • 全局状态管理:VueX • css预处理器:sass/less • h5项目移动端适配规则:使 ...

  8. Kaggle案例分析1--Bestbuy

    1. 引言 Kaggle是一个进行数据挖掘和数据分析在线竞赛网站, 成立于2010年. 与Kaggle合作的公司可以提供一个数据+一个问题, 再加上适当的奖励, Kaggle上的计算机科学家和数据科学 ...

  9. 安卓ios各版本及分辨率占比

    Google Play 安装统计数据 只有安卓的 https://developer.android.com/about/dashboards/index.html?hl=zh-cn 腾讯移动分析 安 ...

  10. No.1 selenium学习之路之浏览器操作

    selenium基础,首先就是浏览器的相关操作 下面描述几种浏览器的常用操作 1.打开浏览器 webdriver后面添加想要打开的浏览器 Ie或者Chrome 2.打开指定页面(百度) 3.休眠时间 ...