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

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

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、安装
yum install make gcc gcc-c++
python3 -m pip install --upgrade pip
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

猜你喜欢

转载自blog.csdn.net/csj50/article/details/132231480