话不多说,直接上代码
'''
1、获取数据
2、合并表
3、找出user_id和aisle之间的关系
4、PCA降维
'''
import pandas as pd
from sklearn.decomposition import PCA
order_products = pd.read_csv("./instacart/order_products__prior.csv")
products = pd.read_csv("./instacart/products.csv")
orders = pd.read_csv("./instacart/orders.csv")
aisles = pd.read_csv("./instacart/aisles.csv")
table1 = pd.merge(aisles, products, on=["aisle_id", "aisle_id"])
table2 = pd.merge(table1, order_products, on=["product_id", "product_id"])
table3 = pd.merge(table2, orders, on=["order_id", "order_id"])
table = pd.crosstab(table3["user_id"], table3["aisle"])
data = table[:10000] # 数据太大,简单起见
# PCA降维
transfer = PCA(n_components=0.95)
data_new = transfer.fit_transform(data)
print("data_new: \n", data_new)
print("data_new shape: \n", data_new.shape) # data.shape为特征量