主成分分析(PCA)进行无监督的降维,而逻辑回归进行预测.

我们使用GridSearchCV来设置PCA的维度

# coding:utf-8

from pylab import *
import numpy as np from sklearn import linear_model, decomposition, datasets
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV logistic = linear_model.LogisticRegression() pca = decomposition.PCA()
pipe = Pipeline(steps=[('pca', pca), ('logistic', logistic)]) digits = datasets.load_digits()
X_digits = digits.data
y_digits = digits.target

绘制PCA图谱

myfont = matplotlib.font_manager.FontProperties(fname="Microsoft-Yahei-UI-Light.ttc")
mpl.rcParams['axes.unicode_minus'] = False
pca.fit(X_digits)
plt.figure(1, figsize=(4, 3))
plt.clf()
plt.axes([.2, .2, .7, .7])
plt.plot(pca.explained_variance_, linewidth=2)
plt.axis('tight')
plt.xlabel(u'n_components',fontproperties=myfont)
plt.ylabel(u'解释方差',fontproperties=myfont)
plt.title(u"主成分分析谱",fontproperties=myfont)

预测

plt.clf()

n_components = [20, 40, 64]
Cs = np.logspace(-4, 4, 3) estimator = GridSearchCV(pipe,
dict(pca__n_components=n_components,
logistic__C=Cs))
estimator.fit(X_digits, y_digits) plt.axvline(estimator.best_estimator_.named_steps['pca'].n_components,
linestyle=':', label='n_components chosen')
plt.legend(prop=myfont)
plt.title(u"预测",fontproperties=myfont)

最新文章

  1. MVC前台Post/Get异步获得数据时参数的取值问题
  2. Node.js-部署【1】-防火墙端口的配置
  3. Jmeter组件6. SOAP/XML-RPC Request
  4. web form 复合控件
  5. swift学习笔记之-枚举
  6. 配置Windows 2008 R2 64位 Odoo 8.0/9.0 源码开发调试环境
  7. matlab eps中文乱码的解决方法
  8. Android studio SweetAlert for Android
  9. 基于Gulp + Browserify构建es6环境下的自动化前端项目
  10. JSP中request获取值
  11. Django知识点汇总
  12. 用jquery监听输入数字的变化
  13. Python学习--11 面向对象高级编程
  14. AngularJs -- ngMessages(1.3+)
  15. 理解 process.initgroups(user, extra_group)
  16. kvm虚拟机中virbr0虚拟网络接口的删除与恢复
  17. POJ 2342 - Anniversary party - [树形DP]
  18. 20170801xlVBA含有公式出现弹窗合并
  19. node的 node-sass@^4.11.0 出现:npm: no such file or directory, scandir '.../node_modules/node-sass/vendor'
  20. 以应用带动SDN发展(CDN峰会 工信部杨崑)(转)

热门文章

  1. ExtJS 4.2 第一个程序
  2. 【原】FMDB源码阅读(一)
  3. 【原】AFNetworking源码阅读(六)
  4. Java 为值传递而不是引用传递
  5. IT持续集成之质量管理
  6. How to accept Track changes in Microsoft Word 2010?
  7. 【每日一linux命令2】命令执行顺序:
  8. 微信硬件H5面板开发(二) ---- 实现一个灯的控制
  9. Hbase学习笔记01
  10. CSharpGL(30)用条件渲染(Conditional Rendering)来提升OpenGL的渲染效率