当前位置:   article > 正文

机器学习:降维案例(探究用户物品类别喜好细分降维)_探究用户对物品的喜好数据

探究用户对物品的喜好数据

探究用户物品类别喜好细分降维数据:

数据是在kaggle中找的。https://www.kaggle.com/c/instacart-market-basket-analysis/data

products.csv 商品信息
order_products__prior.csv 订单与商品信息
orders.csv 用户的订单信息
aisles.csv 商品所属具体物品类别

首先合并各张表在一张表中。merge()函数
在合并表的时候要分清楚表中字段是什么,按什么字段进行合并。
prior表中有:product_id ,order_id
products表中: product_id ,aisle_id
orders表中有:order_id ,user_id
aisles表中: aisles_id,aisle

找到相同字段进行合并。
代码运行是在jupyter中,这里代码我贴在python代码块中

import pandas as pd
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
from sklearn.metrics import silhouette_score

# 读取四张表的数据
prior = pd.read_csv("./data/instacart/order_products__prior.csv")
products = pd.read_csv("./data/instacart/products.csv")
orders = pd.read_csv("./data/instacart/orders.csv")
aisles = pd.read_csv("./data/instacart/aisles.csv")

# 合并四张表到一张表  (用户-物品类别)
_mg = pd.merge(prior, products, on=['product_id', 'product_id'])
_mg = pd.merge(_mg, orders, on=['order_id', 'order_id'])
mt = pd.merge(_mg, aisles, on=['aisle_id', 'aisle_id'])
#显示合并后的前十条
mt.head(10)

# 交叉表(特殊的分组工具)
#列就是用户id  行就是物品
cross = pd.crosstab(mt['user_id'], mt['aisle'])

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

在这里插入图片描述有很多全是0的冗杂信息,这里就需要PCA主成分分析

# 进行主成分分析
pca = PCA(n_components=0.9)
data = pca.fit_transform(cross)
  • 1
  • 2
  • 3

这里可以通过shape去打印看,可以明显看到特征进行了减少。

create by 0125c

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/372652
推荐阅读
相关标签
  

闽ICP备14008679号