资讯专栏INFORMATION COLUMN

数据科学 第 5 章 主成分分析(降维)、相关性

ixlei / 2729人阅读

摘要:主成分分析就是降维,通过线性组合,把多个原始变量合并成若干个主成分,这样每个主成分都变成原始变量的线性组合。相关系数系数为为为。从结果看,这个数据可能不太适合用来分析,因为降到维后的代笔性不足。

这两天用学了主成分分析,用的是PCA。主成分分析就是降维,通过线性组合,把多个原始变量合并成若干个主成分,这样每个主成分都变成原始变量的线性组合。所以你想看具体哪个特征对结果的影响大,通过PCA是看不到的。但PCA能把原来的10+数据特征转变为几个,实现过程如下:

导入数据:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

inputfile = "C:/Users/xiaom/Desktop/data/online_shoppers_intention.csv"
df = pd.read_csv(inputfile)

这是后面的几列

1、数据处理

只要购买客户数据,对VisitorType、weekend数据做处理,转换为0,1;再删除不要的字段

#只要购买客户的数据
df = df[df["Revenue"] == True]
df["VisitorType"] = np.where(df["VisitorType"] == "Returning_Visitor",1,0)
df["workday"] = np.where(df["Weekend"]==True,0,1)
df.drop(["Weekend","Revenue","Month"], axis=1, inplace=True)
2、相关性检测

对df表进行相关性检测,看每个字段的相关度,删除相关度高的字段,减少计算量。如果自变量属于中度以上线性相关的(>0.6)多个变量,只保留一个即可。

1、2相关系数0.61;3、4系数为0.63;5、6为0.91;7、8为0.74。相关度一般在0.64以上就认为是比较相关的关系,所以删除5

#求各字段的相关性,用corr()函数,并保留2位小数
df.corr().round(2)
#结果:1,2相关系数0.61;3,4系数为0.63;5,6为0.91;7,8为0.74。所以对相关性高的保留1个字段
df.drop(["Administrative_Duration", "Informational_Duration",
         "ProductRelated_Duration",
         "BounceRates"],axis=1, inplace=True)
print(df)
3、标准化处理
x = df
#对PageValues相差太大,对其进行标准化
from sklearn import preprocessing
x = preprocessing.scale(x)
4、PCA
#用PCA(主成分分析法),来查看对购买影响最大的特征
from sklearn.decomposition import PCA
model = PCA(n_components=7)   #把数据降到6维
model.fit(x)
print("降到6维后,这6维的代表性为:")
print(model.explained_variance_ratio_)
print(model.components_) #返回具有最大方差的成分
print("返回参数的值")
print(model.get_params)  #返回各个参数的值
#print(model.get_precision())

#下面是画图的
x2 = model.transform(x)
df["pca1"] = x2[:,0]
df["pca2"] = x2[:,1]
#print(df.head( ))
sns.lmplot("pca1","pca2", data=df, fit_reg=False)
plt.show()

左边是降维后的结果,68%左右,数据从原来的10维下降到了6维。从结果看,这个数据可能不太适合用pca来分析,因为降到6维后的代笔性不足70%。
右边是降维后的图。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42696.html

相关文章

  • 【学习摘录】机器学习特征选择

    摘要:应用过机器学习进行数据挖掘的同学应该都知道特征选择对模型表现的重要性。本文基于网上经典特征选择相关文章整理出干货常用方法分类以及调包侠该如何用快速上手,供大家参考。 应用过机器学习进行数据挖掘的同学应该都知道特征选择对模型表现的重要性。本文基于网上经典特征选择相关文章整理出干货:常用方法分类以及调包侠该如何用sklearn快速上手,供大家参考。 (一)预处理: 1 无量纲化: 1.1 ...

    lyning 评论0 收藏0
  • ApacheCN 人工智能知识树 v1.0

    摘要:贡献者飞龙版本最近总是有人问我,把这些资料看完一遍要用多长时间,如果你一本书一本书看的话,的确要用很长时间。为了方便大家,我就把每本书的章节拆开,再按照知识点合并,手动整理了这个知识树。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 贡献者:飞龙版...

    刘厚水 评论0 收藏0
  • 机器学习之PCA与梯度上升法

    摘要:主成分分析,简称是一种非监督学习的机器算法,主要用于数据的降维。对于的目标函数求使得最大,可以使用梯度上升法来解决。利用梯度公式的梯度上升法实际上是批量梯度上升法还有随机梯度上升法和小批量梯度上升法,本文不涉及。 主成分分析(Principle Component Analysis,简称:PCA)是一种非监督学习的机器算法,主要用于数据的降维。 PCA 基本原理 以有2个特征的二维平面...

    curried 评论0 收藏0

发表评论

0条评论

ixlei

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<