数据分析python PCA主成分分析

简介: 数据分析python PCA主成分分析

在有许多变量的情况下,主成分分析可以使得我们最大程度的保留住重要信息来训练模型,运行环境是anconda 3.8,jupter notebook

1初始准备

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
import matplotlib.pyplot as pl
from sklearn.datasets import load_wine
from sklearn.pipeline import make_pipeline

pl.rcParams['font.sans-serif']='SimHei' #画图正常显示中文
pl.rcParams['axes.unicode_minus']=False #决绝保存图像是负号‘-’显示方块的问题
%matplotlib inline

2 读出数据与分组

features,target=load_wine(return_X_y=True)#三分类的酒数据集
features.shape,target.shape

RANDOM_STATE=42 #随机,类似随机种子seed
#将数据切分成7:3分制成训练集和测试集
X_train,X_test,y_train,y_test=train_test_split(features,target,test_size=0.30,random_state=RANDOM_STATE)

3 对不使用PCA,使用PCA不做标准化,使用PCA标准化三种情况进行分组

#不使用PCA
raw_clf=make_pipeline(StandardScaler(),LogisticRegression())
raw_clf.fit(X_train,y_train)
pred_test_raw=raw_clf.predict(X_test)
#使用PCA但不做数据处理
unscaled_clf=make_pipeline(PCA(n_components=2),LogisticRegression())
unscaled_clf.fit(X_train,y_train)
pred_test=unscaled_clf.predict(X_test)
#使用PCA,同时做数据处理
std_clf=make_pipeline(StandardScaler(),PCA(n_components=2),LogisticRegression())
std_clf.fit(X_train,y_train)
pred_test_std=std_clf.predict(X_test)
#查看各种情况下的分类准确率
print(u'\n不使用PCA,预测准确率','{:.2%}'.format(metrics.accuracy_score(y_test,pred_test_raw)))
print(u'\n使用PCA,未标准化预测准确率','{:.2%}'.format(metrics.accuracy_score(y_test,pred_test)))
print(u'\n使用PCA,标准化预测准确率','{:.2%}'.format(metrics.accuracy_score(y_test,pred_test_std)))

对三种情况进行正确率比较

在这里插入图片描述

4 将抽取出来的主成分进行展示

#将pca信息抽取出来
pca=unscaled_clf.named_steps['pca']
pca_std=std_clf.named_steps['pca']
#打印最主要的主成分,注意,它是特征空间中的主成分轴,表达了数据中具有最大方差的方向
print(u'\n未预处理第一主成分:\n',pca.components_[0])
print(u'\n预处理第一主成分:\n',pca_std.components_[0])

在这里插入图片描述

5 将PCA分类结果画图

#对训练集数据进行PCA降维以备绘图
X_train_nostd=pca.transform(X_train)
scaler=std_clf.named_steps['standardscaler']
X_train_std=pca_std.transform(scaler.transform(X_train))

FIG_SIZE=(10,7)

fig,(ax1,ax2)=pl.subplots(ncols=2,figsize=FIG_SIZE)

#不预处理的PCA
for l,c,m in zip(range(0,3),('blue','red','green'),('^','s','o')):
    ax1.scatter(X_train_nostd[y_train==l,0],X_train_nostd[y_train==l,1],
               color=c,
               label='class %s'% l,
               alpha=0.5,
               marker=m)
    
#预处理后的PCA
for l,c,m in zip(range(0,3),('blue','red','green'),('^','s','o')):
    ax2.scatter(X_train_std[y_train==l,0],X_train_std[y_train==l,1],
               color=c,
               label='class %s'% l ,
               alpha=0.5,
               marker=m)
    
ax1.set_title(u'PCA降维后的训练集')
ax2.set_title(u'特征放缩+PCA降维后的训练集')

for ax in (ax1,ax2):
    ax.set_xlabel(u'第一主成分')
    ax.set_ylabel(u'第二主成分')
    ax.legend(loc='upper right')
    ax.grid()
    
pl.tight_layout()

在这里插入图片描述

目录
相关文章
|
9月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
10月前
|
缓存 供应链 监控
1688item_search_factory - 按关键字搜索工厂数据接口深度分析及 Python 实现
item_search_factory接口专为B2B电商供应链优化设计,支持通过关键词精准检索工厂信息,涵盖资质、产能、地理位置等核心数据,助力企业高效开发货源、分析产业集群与评估供应商。
|
10月前
|
缓存 监控 算法
item_get - Lazada 商品详情详情接口深度分析及 Python 实现
Lazada商品详情接口item_get可获取商品全维度数据,包括价格、库存、SKU、促销及卖家信息,支持东南亚六国站点,适用于竞品监控、定价策略与市场分析,助力跨境卖家精准决策。
|
10月前
|
JSON 监控 数据格式
1688 item_search_app 关键字搜索商品接口深度分析及 Python 实现
1688开放平台item_search_app接口专为移动端优化,支持关键词搜索、多维度筛选与排序,可获取商品详情及供应商信息,适用于货源采集、价格监控与竞品分析,助力采购决策。
|
10月前
|
缓存 监控 算法
唯品会item_search - 按关键字搜索 VIP 商品接口深度分析及 Python 实现
唯品会item_search接口支持通过关键词、分类、价格等条件检索商品,广泛应用于电商数据分析、竞品监控与市场调研。结合Python可实现搜索、分析、可视化及数据导出,助力精准决策。
|
9月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
9月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
9月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。

推荐镜像

更多