降维案例

  • 案例一
  • 步骤
    • 步骤一
    • 步骤二
    • 步骤三

案例一

探究: 用户对物品类别的喜好细分降维.

数据:

  • products.csv 商品信息
  • order_products__prior.csv 订单与商品信息
  • orders.csv 用户的订单信息
  • aisles.csv 商品所属具体物品类别

步骤

  1. 合并各张表到一张表当中: pd.merge()
  2. 建立一个类似行, 列数据
  3. 使用 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 个.

机器学习进阶 第一节 第五课相关推荐

  1. 机器学习进阶 第一节 第七课

    sklarn-learn 数据集 概述 sklearn.datasets datasets.load_() datasets.fetch_() datasets.make_() 返回类型 数据集目录 ...

  2. 机器学习进阶 第一节 第十课

    k-近邻 概述 例子 欧式距离 练习 概述 定义: 如果一个样本在特征空间汇总的 k 个最相似 (即特征空间中最邻近) 的样本中的大多数属于某一个类别, 则该样本属于这个类别. k-近邻算法采用测量不 ...

  3. 1-2 李宏毅2021春季机器学习教程-第一节(下)-深度学习基本概念简介

    上篇文章1-1 李宏毅2021春季机器学习教程-第一节(上)-机器学习基本概念简介介绍了回归的一些知识,重点介绍了机器学习寻找函式的三个步骤.接着我们继续学习第一节Introduction的内容. 目 ...

  4. fast.ai 深度学习笔记:第一部分第五课

    原文:Deep Learning 2: Part 1 Lesson 5 作者:Hiromi Suenaga 课程论坛 一,引言 没有足够的关于结构化深度学习的出版物,但它肯定出现在行业中: 结构化深度 ...

  5. 综合日语第一册第五课

    第一单元 语法部分 N1 は N2 です 名词谓语句:     单词中「は」读"ha":语法中 助词「は」 读"wa":「は」是提示助词,提示的是主语:    ...

  6. 小程的第一节C语言课

    大家好,我是来自中北大学的小程,目前是一位大一小白,当然,目标肯定是成为一名最牛逼的程序员,成为那种三年不开张,开张吃三年的那种. 学习编程肯定不是一件简单的事,需要大量的练习,我打算通过线上网课线下 ...

  7. Linux基础 第一节 第三课

    [toc] 创建用户 # useradd iamlittlewhilte # passwd iamlittlewhite 在 Linux 系统下, 默认情况下, 创建一个用户的同时会给用户在系统目录下 ...

  8. 数学加强 第一节 第三课

    [toc] 代码展示1 示例1 执行结果: 案例2 执行结果: 案例3 执行结果:

  9. 第一节毛概课我的收获

    1,大学让人越来越聪明."聪"字有"耳",意为我们用耳听,听讲座,听报告,听所有对我们有益之言语:右边"口"之上为"眼" ...

最新文章

  1. SpringMVC容器初始化篇----ContextLoaderListener
  2. window7/10 安装Tomcat
  3. C安全编码--预处理
  4. C语言经典面试题目(转的,不过写的的确好!)
  5. 抽象类(纯虚函数、虚函数)和虚基类(虚继承)
  6. 天融信安全接入客户端_天融信提示您警惕物联网设备Ripple20漏洞风险
  7. php无法添加数据库,无法添加数据到数据库
  8. 实践总结 - 不可错过的Angular应用技巧
  9. excel选中行变色
  10. mysql 周平均值_SQL语句: 按周、月统计总值 和 平均值
  11. 有选择的忽略PyCharm 3的PEP8语言风格警告提示信息
  12. 域控服务器里没有internet时间,加入域之后,【Internet 时间】选项没有了
  13. \t\t最近两周访问来源统计
  14. Mybase使用教程-不古出品
  15. 如何把单词批量导入金山词霸生词本?
  16. 《图解 HTTP》 读书笔记
  17. 概率密度估计--参数估计与非参数估计
  18. win10下虚拟机安装XP系统 后无网卡的解决
  19. 明日之后mumu模拟器找不到服务器,MuMu模拟器教你玩转《明日之后》,生死之战笑到最后!...
  20. 李永乐讲卷积神经网络,卷积神经网络最新进展

热门文章

  1. unity Domain Reload scene Reload 静态变量重置
  2. javaweb 学习总结-孤傲苍狼
  3. 优雅永不过时-每日签到功能的优雅实现
  4. 淘宝为什么能成为阿里巴巴的创新基地? | 一点财经
  5. JavaScript 中如何判断变量是否为数字
  6. SQL数据库(分页查询、DCL 数据控制语言、通用函数、约束、多表查询)
  7. 洛谷OJ P1263 宫廷守卫
  8. MLDEV[18] | 入职一周年:夯实基础,持续深入
  9. 龙之秘境java_Java-彻底弄懂netty-程序员深入理解NIO怎么操作buffer-知识铺
  10. 读研三年VS工作三年,到底会有哪些差距?