机器学习进阶 第一节 第五课
降维案例
- 案例一
- 步骤
- 步骤一
- 步骤二
- 步骤三
案例一
探究: 用户对物品类别的喜好细分降维.
数据:
- products.csv 商品信息
- order_products__prior.csv 订单与商品信息
- orders.csv 用户的订单信息
- aisles.csv 商品所属具体物品类别
步骤
- 合并各张表到一张表当中: pd.merge()
- 建立一个类似行, 列数据
- 使用 PCA 分析
步骤一
import pandas as pd
from sklearn.decomposition import PCA# 读取四张表的数据
prior = pd.read_csv("order_products__prior.csv")
products = pd.read_csv("products.csv")
orders = pd.read_csv("orders.csv")
aisles = pd.read_csv("aisles.csv")# 合并四张表到一张表
_mg = pd.merge(prior, products, on=["product_id", "product_id"])
_mg = pd.merge(_mg, orders, on=["order_id", "order_id"])
mt = pd.merge(_mg, aisles, on=["aisle_id", "aisle_id"])print(mt.head())输出结果:
0 2 33120 ... 8.0 eggs
1 26 33120 ... 7.0 eggs
2 120 33120 ... 10.0 eggs
3 327 33120 ... 8.0 eggs
4 390 33120 ... 9.0 eggs
步骤二
import pandas as pd
from sklearn.decomposition import PCA# 读取四张表的数据
prior = pd.read_csv("order_products__prior.csv")
products = pd.read_csv("products.csv")
orders = pd.read_csv("orders.csv")
aisles = pd.read_csv("aisles.csv")# 合并四张表到一张表
_mg = pd.merge(prior, products, on=["product_id", "product_id"])
_mg = pd.merge(_mg, orders, on=["order_id", "order_id"])
mt = pd.merge(_mg, aisles, on=["aisle_id", "aisle_id"])# 交叉表 (特殊的分组工具)
cross = pd.crosstab(mt["user_id"],mt["aisle"])# 输出头5条数据
print(cross.head())输出结果:
aisle air fresheners candles asian foods ... white wines yogurt
user_id ...
1 0 0 ... 0 1
2 0 3 ... 0 42
3 0 0 ... 0 0
4 0 0 ... 0 0
5 0 2 ... 0 3
步骤三
import pandas as pd
from sklearn.decomposition import PCA# 读取四张表的数据
prior = pd.read_csv("order_products__prior.csv")
products = pd.read_csv("products.csv")
orders = pd.read_csv("orders.csv")
aisles = pd.read_csv("aisles.csv")# 合并四张表到一张表
_mg = pd.merge(prior, products, on=["product_id", "product_id"])
_mg = pd.merge(_mg, orders, on=["order_id", "order_id"])
mt = pd.merge(_mg, aisles, on=["aisle_id", "aisle_id"])# 交叉表 (特殊的分组工具)
cross = pd.crosstab(mt["user_id"], mt["aisle"])# 进行主成分分析
pca = PCA(n_components=0.9)
data = pca.fit_transform(cross)# 输出数据
print(data)输出结果:
[[-2.42156587e+01 2.42942720e+00 -2.46636975e+00 ... 6.86800336e-011.69439402e+00 -2.34323022e+00][ 6.46320806e+00 3.67511165e+01 8.38255336e+00 ... 4.12121252e+002.44689740e+00 -4.28348478e+00][-7.99030162e+00 2.40438257e+00 -1.10300641e+01 ... 1.77534453e+00-4.44194030e-01 7.86665571e-01]...[ 8.61143331e+00 7.70129866e+00 7.95240226e+00 ... -2.74252456e+001.07112531e+00 -6.31925661e-02][ 8.40862199e+01 2.04187340e+01 8.05410372e+00 ... 7.27554259e-013.51339470e+00 -1.79079914e+01][-1.39534562e+01 6.64621821e+00 -5.23030367e+00 ... 8.25329076e-011.38230701e+00 -2.41942061e+00]]
查看 data.shape, 我们可以发现 类别由 134 个变为了 27 个.
机器学习进阶 第一节 第五课相关推荐
- 机器学习进阶 第一节 第七课
sklarn-learn 数据集 概述 sklearn.datasets datasets.load_() datasets.fetch_() datasets.make_() 返回类型 数据集目录 ...
- 机器学习进阶 第一节 第十课
k-近邻 概述 例子 欧式距离 练习 概述 定义: 如果一个样本在特征空间汇总的 k 个最相似 (即特征空间中最邻近) 的样本中的大多数属于某一个类别, 则该样本属于这个类别. k-近邻算法采用测量不 ...
- 1-2 李宏毅2021春季机器学习教程-第一节(下)-深度学习基本概念简介
上篇文章1-1 李宏毅2021春季机器学习教程-第一节(上)-机器学习基本概念简介介绍了回归的一些知识,重点介绍了机器学习寻找函式的三个步骤.接着我们继续学习第一节Introduction的内容. 目 ...
- fast.ai 深度学习笔记:第一部分第五课
原文:Deep Learning 2: Part 1 Lesson 5 作者:Hiromi Suenaga 课程论坛 一,引言 没有足够的关于结构化深度学习的出版物,但它肯定出现在行业中: 结构化深度 ...
- 综合日语第一册第五课
第一单元 语法部分 N1 は N2 です 名词谓语句: 单词中「は」读"ha":语法中 助词「は」 读"wa":「は」是提示助词,提示的是主语: ...
- 小程的第一节C语言课
大家好,我是来自中北大学的小程,目前是一位大一小白,当然,目标肯定是成为一名最牛逼的程序员,成为那种三年不开张,开张吃三年的那种. 学习编程肯定不是一件简单的事,需要大量的练习,我打算通过线上网课线下 ...
- Linux基础 第一节 第三课
[toc] 创建用户 # useradd iamlittlewhilte # passwd iamlittlewhite 在 Linux 系统下, 默认情况下, 创建一个用户的同时会给用户在系统目录下 ...
- 数学加强 第一节 第三课
[toc] 代码展示1 示例1 执行结果: 案例2 执行结果: 案例3 执行结果:
- 第一节毛概课我的收获
1,大学让人越来越聪明."聪"字有"耳",意为我们用耳听,听讲座,听报告,听所有对我们有益之言语:右边"口"之上为"眼" ...
最新文章
- SpringMVC容器初始化篇----ContextLoaderListener
- window7/10 安装Tomcat
- C安全编码--预处理
- C语言经典面试题目(转的,不过写的的确好!)
- 抽象类(纯虚函数、虚函数)和虚基类(虚继承)
- 天融信安全接入客户端_天融信提示您警惕物联网设备Ripple20漏洞风险
- php无法添加数据库,无法添加数据到数据库
- 实践总结 - 不可错过的Angular应用技巧
- excel选中行变色
- mysql 周平均值_SQL语句: 按周、月统计总值 和 平均值
- 有选择的忽略PyCharm 3的PEP8语言风格警告提示信息
- 域控服务器里没有internet时间,加入域之后,【Internet 时间】选项没有了
- \t\t最近两周访问来源统计
- Mybase使用教程-不古出品
- 如何把单词批量导入金山词霸生词本?
- 《图解 HTTP》 读书笔记
- 概率密度估计--参数估计与非参数估计
- win10下虚拟机安装XP系统 后无网卡的解决
- 明日之后mumu模拟器找不到服务器,MuMu模拟器教你玩转《明日之后》,生死之战笑到最后!...
- 李永乐讲卷积神经网络,卷积神经网络最新进展
热门文章
- unity Domain Reload scene Reload 静态变量重置
- javaweb 学习总结-孤傲苍狼
- 优雅永不过时-每日签到功能的优雅实现
- 淘宝为什么能成为阿里巴巴的创新基地? | 一点财经
- JavaScript 中如何判断变量是否为数字
- SQL数据库(分页查询、DCL 数据控制语言、通用函数、约束、多表查询)
- 洛谷OJ P1263 宫廷守卫
- MLDEV[18] | 入职一周年:夯实基础,持续深入
- 龙之秘境java_Java-彻底弄懂netty-程序员深入理解NIO怎么操作buffer-知识铺
- 读研三年VS工作三年,到底会有哪些差距?