一、探究用户对物品类别的喜好细分
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