Python数据分析学习笔记(6)数据规约实战--以主成分分析PCA为例

一、相关理论:

1、数据规约:产生更小且保持数据完整性的新数据集。意义在于降低无效、错误数据;降低存储成本;少量且具有代表性的数据大幅加快,主要分为以下两类:

①属性规约:属性合并或删除无关维,目标是寻找最小子集使子集概率分布尽可能与原来相同。

    常用方法:

(1)合并属性 将就属性合并为新属性 {A1,A2,A3,B1,B2,C}——{A,B,C}
(2)逐步向前选择 从空集开始,逐个加入最优属性,直到无最优或满足条件 {}—{A1}—{A1,A4}
(3)逐步向后删除 从全集开始,每次删除最差属性,直到无最差或满足阈值
(4)决策树归纳 利用决策树归纳能力进行分类,删除未出现的属性,即效果差的属性
(5)主成分分析 用少量变量解释大部分变量,保留大部分信息,将相关性高的数据转为彼此独立

②数值规约:通过选择替代的、较小的数据来较少数据量,包括有参数(回归、对数线性模型)和无参数方法(直方图、聚类、抽样)。

2、主成分分析(Principal components analysis,简称PCA):是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。主要原理是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。相关原理可参考 主成分分析(PCA)原理详解

二、代码实战:

1、准备阶段:

(1)示例数据:本例使用的是某时间的淘宝商品数据,存储在MySQL数据库中(数据分享链接:https://pan.baidu.com/s/1SsSy-mxvCStxk4e2PYxB3A  提取码:tquy,将该文件从MySQL打开执行即可)。

(2)导入相关模块并读取数据库数据:

扫描二维码关注公众号,回复: 3755354 查看本文章
import pymysql
import pandas as pda
import numpy as npy
from sklearn.decomposition import PCA
#连接数据库获取数据
conn=pymysql.connect(host="127.0.0.1",user="root",passwd="*****",db="sys")
sql="select hits,comment from myhexun"
data1=pda.read_sql(sql,conn)
#构造新属性:评点比
ch=data1[u"comment"]/data1["hits"]
data1[u"评点比"]=ch

(3)主成分分析示例:

#主成分分析示例过程
pca1=PCA()
pca1.fit(data1)#设定分析数据
#可返回模型各个特征量
character=pca1.components_
#可返回各个成分中各自方差的百分比,贡献率
rate=pca1.explained_variance_ratio_

结果:

(4)主成分分析降维示例:

#主成分分析降为2维的过程
pca2=PCA(2)
pca2.fit(data1)#设定分析数据
reduction=pca2.transform(data1)#降维方法
#恢复降维前的数据
recovery=pca2.inverse_transform(reduction)

结果:

感谢韦玮老师的指导

猜你喜欢

转载自blog.csdn.net/Smart3S/article/details/83449578