机器学习 - 主成分PCA案例

 

主成分分析(principal component analysis)是一种常见的数据降维方法,其目的是在“信息”损失较小的前提下,将高维的数据转换到低维,从而减小计算量。

某医学院测得20例肝病患者的4项肝功能指标:SGPT(转氨酶),肝大指数,ZnT(硫酸锌浊度)和AFP(胎甲球蛋白),分别用X1~X4表示,研究数据见下表,试进行主成份分析。

 

import pandas as pd

import numpy as np

from sklearn.preprocessing import StandardScaler

from sklearn.decomposition import PCA

 

(1)第一步 数据标准化

#读取数据

df=pd.read_table(filepath_or_buffer=r'E:\数据挖掘\算法论理\机器学习\主成分分析\python案例\肝病患者案例\org_data.txt',sep='|')

#print(df)

#数据标准化(归一化)

X_scaler = StandardScaler()

x = X_scaler.fit_transform(df)

 

(2)第二步 主成份分析

#保证降维后的数据保持90%的信息

pca = PCA(n_components=0.9)

pca.fit(x)

pca_x=pca.transform(x)

 

(3)第三步 得出主成份信息

#保留主成份个数

print(pca.n_components_ )

 

 

#主成份方程系数

print(pca.components_)

 

#主成份Z1=-0.69996363x1 -0.6897981x2 -0.08793923x3 -0.16277651x4

#主成份Z2=0.09501037x1 -0.28364662x2 + 0.9041587x3+0.30498307x4

#主成份Z3=0.24004879x1 -0.05846333x2+ 0.27031356x3 -0.93053167x4

 

#主成份矩阵维度

print(pca_x.shape)

 

 

#输出降维后的主成份矩阵

print(pca_x)

 

(4)第四步 展示第1主成份与第2主成份散点图

df1 = pd.DataFrame(pca_x)

df1.columns =['ya','yb','yc']

df1.plot(kind='scatter',x='ya', y='yb', label='Scatter plot')

plt.show()

 

此两点为离群点,第2主成份较为突出,由于第2主成份得分是描述慢性肝炎炎症的指标,故判断此两位患者很可能患上慢性肝炎。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值