1. 아이템 카테고리에 대한 사용자 선호도 탐색
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: 제품이 속한 특정 품목 카테고리
Fields: aisle_id, aisle
( 5) aisle은 통로를 의미하는데, 왜 aisle이 품목의 범주를 나타낼 수 있습니까?슈퍼마켓의 한 통로에는 기본적으로 동일한 유형의 상품이 있기 때문입니다.
2. 필드
사용자 항목 카테고리
user_id aisle
(1) User_id와 aisle은 동일한 테이블에 배치되어야 합니다. - 병합
(2) user_id와 aisle 찾기 - pandas의 크로스탭 및 피벗 테이블
(3) 필요한 중복 기능이 너무 많습니다. to be Reduce Dimension - PCA 차원 축소
(4) 이 데이터는 Kaggle에서 직접 다운로드해야 합니다.
2. 주피터 노트북 설치
1, 安装
yum install make gcc gcc-c++
python3 -m pip install --upgrade pip
pip install 노트북
2. jupyter 노트북 시작
--allow-root --ip 192.168.1.100
3. 프롬프트에 따라
http://192.168.1.100:8888/?token=04c3869ea51b908486ae5e3c4d4fd5a7b1021904a57e78ff 에 액세스합니다.
3. 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