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

导入数据:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as pltinputfile = '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%。
右边是降维后的图。

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

  1. 【Python数据科学】第一章 IPython 超越Python

    1.IPythonde 的帮助和文档 1.1.用符号 ?获取文档 help(len) Help on built-in function len in module builtins:len(obj, ...

  2. R数据科学第三章读书笔记和习题

    这篇文章只是记录个人理解,有时间会写第五章EDA(探索性分析部分) 概述 dplyr包在r语言中是用来整理数据集,以便数据更容易处理. dplyr中有5个核心函数,分别是 按值筛选观测 filter( ...

  3. 【数据科学】一篇文章看懂A/B测

    1.互联网AB测概述 1.1 什么是AB测 AB测是同时进行多个方案并行测试,但是每个方案仅有一个变量不同,然后以某种规则优胜劣汰选择最优的方案.示例:在互联网新功能上线前,为该功能制作两个或多个版本 ...

  4. R数据科学-第七章使用stringr处理字符串

    一.字符串基础 1.字符串长度str_length >library(stringr) > str_length(c("a","R for data scie ...

  5. 大数据时代的历史机遇——产业变革与数据科学

    <大数据时代的历史机遇--产业变革与数据科学> 基本信息 作者: 赵国栋 易欢欢 糜万军 鄂维南 出版社:清华大学出版社 ISBN:9787302325352 上架时间:2013-6-14 ...

  6. Python数据科学|第一章:数据科学家的武器库

    本系列教程为<Python数据科学--技术详解与商业实践>的读书笔记.该书以Python为实现工具,以商业实战为导向,从技术.业务.商业实战3个维度来展开学习.本书共19章(Python环 ...

  7. 《数据科学:R语言实现》——第1章 R中的函数

    本节书摘来自华章出版社<数据科学:R语言实现>一 书中的第1章,第1.1节,作者:R for Data Science Cookbook 丘祐玮(David Chiu),更多章节内容可以访 ...

  8. 因果关系和相关关系 大数据_数据科学中的相关性与因果关系

    因果关系和相关关系 大数据 Let's jump into it right away. 让我们马上进入. 相关性 (Correlation) Correlation means relationsh ...

  9. 普惠数据科学应用,九章云极携手伙伴共探智慧未来

    AI时代到来后,数据的价值正在发生转变,数据分析也进入了 "强分析" 阶段.数据科学应用的程度也正在拉大企业间的竞争差距和收益差距,企业如果不想在智能化趋势中落后于人,不仅希望有更 ...

  10. 《Python数据科学入门》之阅读笔记(第2章)

    Python数据科学入门 Dmitry Zinoviev著 熊子源 译 第二章 数据科学的Python核心 第4单元 理解基本的字符串函数 大小写转换函数: lower() 将所有字符转换为小写 up ...

最新文章

  1. js bom window对象
  2. 《树莓派Python编程入门与实战》——3.5 关于Python交互式shell
  3. java或者jsp中修复会话标识未更新漏洞
  4. thingsboard源码结构解析
  5. hdu 5157(manacher+前缀和+树状数组)
  6. 深入了解以太坊虚拟机第4部分——ABI编码外部方法调用的方式
  7. InputStream,BufferedImage与byte数组之间的转换
  8. IOS-—UICollectionView使用综述(一 )(基础篇--垂直列表方式,横向相册方式)
  9. Android Studio 2.2 HTTP proxy setting 提示异常
  10. poj3264Balanced Lineup(RMQ)
  11. 移动开发—媒体查询(Media Query)
  12. 将图像平移到画布中心python_python-如何用猕猴桃中的图像填充画布?
  13. ZAB协议(ZooKeeper Atomic Broadcast)入门
  14. 拓端tecdat|R语言Fisher检验探究地区间公寓价格的关系
  15. YOLOv3的环境配置
  16. Anaconda安装Pyserial
  17. python -- 判断给定的参数是否是地理位置的经度和纬度
  18. veu项目中引入jquery
  19. STM32F7 DSP库 FFT过程记录
  20. .NET Core之EF Core

热门文章

  1. Atitit db query op shourt code lib list 数据库查询最佳实践 JdbcTemplate spring v2 u77 .docx Atitit db query o
  2. Atitit 自然语言处理(NLP)的应用 与 搜索引擎 目录 1.1. 搜索引擎并不是自然语言处理(NLP)的唯一应用。 2 1.2. NLP的应用 2 1.3. 社交网站信息流, 2 1.4.
  3. Atitit attilax提出的软件开发发展趋势与概念 1. 长期化 复用化 跨平台 可移植性 1 2. 通用化 通用 化的渠道至少有3种 1 2.1. 模块化 1 2.2. 标准化接口 1 2
  4. Atiitt 提升复用性之道 项目成本之道 Atitit 代码复用的理解attilax总结 1. 复用分类 1 1.1. 类库侧重代码重用,框架侧重设计重用 2 2. 文档与索引体系 2 3
  5. Atitit 架构师之道 attilax著 1.1. 认和评估系统需求, 2 1.2. 给出开发规范 2 1.3. ,搭建系统实现的核心构架, 2 1.4. 扫清主要难点的技术人员 2 1.5. 核
  6. paip.jdk1.4 1.5(5.0) 1.6(6.0) 7.0 8.0特点比较与不同
  7. paip..net c# 调用JS JAVASCRIPT变量与方法
  8. paip.提升用户体验之全角半角
  9. JS调试设置断点却无法中断的解决
  10. 数库“SmarTag”数据体系正式登陆Factset另类数据市场