前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于sklearn的主成分分析理论部分代码实现

基于sklearn的主成分分析理论部分代码实现

作者头像
月见樽
发布2018-04-27 12:09:50
8840
发布2018-04-27 12:09:50
举报

理论部分

特征降维

特征降维是无监督学习的一种应用:将n维的数据降维为m维的数据(n>m)。可应用于数据压缩等领域

主成分分析(PCA)

主成分分析是一种常用的特征降维方法,对于m维的数据A,可以降维获得一个n维的数据B(m>n),满足$B = f(A)$且$A \approx g(f(A))$,其中f(x)为编码函数,g(x)为解码函数。

当进行主成分分析时,优化目标为$c = argmin ||x - g(c)||_{2}$,其中c为编码,g(c)为解码函数

代码实现

导入数据集

代码语言:javascript
复制
import numpy as np
import pandas as pd
代码语言:javascript
复制
digits_train = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tra', header=None)
digits_test = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tes', header=None)

分割数据与标签

代码语言:javascript
复制
train_x,train_y = digits_train[np.arange(64)],digits_train[64]
test_x,test_y = digits_test[np.arange(64)],digits_test[64]

主成分分析

代码语言:javascript
复制
from sklearn.decomposition import PCA
estimator = PCA(n_components=20)
pca_train_x = estimator.fit_transform(train_x)
pca_test_x = estimator.transform(test_x)

训练支持向量机

代码语言:javascript
复制
from sklearn.svm import LinearSVC

原始数据

代码语言:javascript
复制
svc = LinearSVC()
svc.fit(X=train_x,y=train_y)
svc.score(test_x,test_y)
代码语言:javascript
复制
0.9393433500278241

PCA处理后数据

代码语言:javascript
复制
svc_pca = LinearSVC()
svc_pca.fit(pca_train_x,train_y)
svc_pca.score(pca_test_x,test_y)
代码语言:javascript
复制
0.91819699499165275
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.12.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 理论部分
    • 特征降维
      • 主成分分析(PCA)
      • 代码实现
        • 导入数据集
          • 分割数据与标签
            • 主成分分析
              • 训练支持向量机
                • 原始数据
                • PCA处理后数据
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档