当前位置: 首页 > news >正文

机器学习基础之《特征工程(4)—特征降维—案例》

一、探究用户对物品类别的喜好细分

1、找到用户和物品类别的关系
数据如下:
(1)order_products__prior.csv:订单与商品信息
字段:order_id,product_id,add_to_cart_order,reordered
(2)products.csv:商品信息
字段:product_id,product_name,aisle_id,department_id
(3)orders.csv:用户的订单信息
字段:order_id,user_id,eval_set,order_number,...
(4)aisles.csv:商品所属具体物品类别
字段:aisle_id,aisle
(5)aisle是过道的意思,为什么过道可以表示物品类别呢,因为超市一个过道基本是同一类商品

2、字段
用户    物品类别
user_id    aisle
(1)需要将user_id和aisle放在同一张表中  --合并
(2)找到user_id和aisle  --交叉表和透视表pandas里
(3)特征冗余过多,要降维  --PCA降维
(4)这个数据需要自己去kaggle下载

二、安装Jupyter Notebook

1、安装
pip install notebook

2、启动
jupyter notebook --allow-root --ip 192.168.1.100

3、根据提示浏览器访问
http://192.168.1.100:8888/?token=04c3869ea51b908486ae5e3c4d4fd5a7b1021904a57e78ff

三、Jupyter建立day01_instacart_pca

# 1、获取数据
# 2、合并表
# 3、找到user_id和aisles之间的关系
# 4、PCA降维import pandas as pd# 1、获取数据
order_products = 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")# 2、合并表
# 合并aisles.csv和products.csv表
tab1 = pd.merge(aisles, products, on=["aisle_id", "aisle_id"])tab2 = pd.merge(tab1, order_products, on=["product_id", "product_id"])tab3 = pd.merge(tab2, orders, on=["order_id", "order_id"])#head()是获取dataframe的前5行数据
tab3.head()# 3、找到user_id和aisles之间的关系
table = pd.crosstab(tab3["user_id"], tab3["aisle"])table.head()# 4、PCA降维
from sklearn.decomposition import PCA# 1)实例化一个转换器类
transfer = PCA(n_components=0.95)
# 2)调用fit_transform
table_new = transfer.fit_transform(table)table_new.shape# 降维留下了44个特征,同时保留了95%的信息table_new

http://www.lryc.cn/news/119359.html

相关文章:

  • docker 删除镜像文件
  • ArcGIS Pro 基础安装与配置介绍
  • 剑指 Offer 13. 机器人的运动范围
  • 技术应用:Docker安全性的最佳实验|聊聊工程化Docker
  • 【Tomcat】Tomcat部署及优化
  • xAI与GPT-4:探索宇宙真实本质的AI之战
  • unity vscode 代码关联 跳转 BUG
  • Linux命令200例:tree用于以树状结构显示文件和目录
  • [C++项目] Boost文档 站内搜索引擎(5): cpphttplib实现网络服务、html页面实现、服务器部署...
  • PO、VO、DAO、BO、DTO、POJO 能分清吗?
  • 31 | 独角兽企业数据分析
  • Kotlin语法
  • 【单片机】51单片机,晨启科技,板子引脚对应关系
  • Swift 数据类型
  • 2.本地存储
  • win10远程桌面控制Ubuntu服务器 - 内网穿透实现公网远程
  • 【Git】—— 标签管理
  • JS_判断打开的是什么手机品牌,判断是否是手机,平板,pc
  • HCIA 动态路由协议之RIP协议
  • 提供高品质正规话费充值接口,H5链接,稳定高效!
  • 苍穹外卖day12笔记
  • Prometheus技术文档-基本使用-配置文件全解!!!!!
  • 宋浩高等数学笔记(十一)曲线积分与曲面积分
  • 安卓如何快速定位native内存泄露。
  • redis学习笔记(二)
  • 不侵入代码的rem适配,支持桌面缩放,vue2的适配方案,包含echarts适配
  • 智能合约 -- 常规漏洞分析 + 实例
  • JavaScript 操作历史记录api怎样使用 JavaScript
  • Spring 容器
  • 【腾讯云Cloud Studio实战训练营】使用React快速构建点餐H5