​【机器学习入门笔记】第四篇-PCA降维

案例:探究用户对物品类别的喜好细节
用户             物品类别
user_id          aisle

步骤:
1)需要将user_id和aisle放在同一表中--合并
2)找到user_id和aisle --交叉和透视表
3)特征冗余过多 -- PCA降维

import pandas as pd
aisles =pd.read_csv("./in/aisles.csv")
products = pd.read_csv("./in/products.csv");
orders = pd.read_csv("./in/orders.csv");
order_products = pd.read_csv("./in/order_products__prior.csv")

# 2、合并表
# order_products_prior.csv  订单与商品信息
#字段:order_id,product_id,add_to_cart_order,reordered

#products 商品信息
#字段:product_id,product_name,aisle_id,department_id

#orders订单信息
#字段:order_id,user_id,eval_set,order_number,order_dow,order_hour_of_day,days_since_prior_order

#aisles 商品所属类别
#字段:aisle_id,aisle

#合并aisles和products==》aisle_id

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"])
tab3.head()
table = pd.crosstab(tab3["user_id"],tab3["aisle"])

运行结果:

#数据太多,只要10000行
data = table[:10000]
data
#很多0降维

 

#pca降维
from sklearn.decomposition import PCA

#1实例化一个转换器类
transfer = PCA(n_components = 0.95)

#2.调用fitt_ransform
data_new = transfer.fit_transform(data)
data_new.shape


data_new


版权声明:本文为Y809714652原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。