机器学习算法: K-means聚类算法

本文介绍了如何运用K-means聚类算法对用户购物数据进行分类。首先,通过合并多个数据集获取用户购买的物品类别信息,然后进行特征降维处理,利用PCA保留95%的数据信息。接着,应用KMeans算法(设置簇数为5)进行聚类,并对部分数据进行预测。实验展示了K-means在用户购物篮分析中的应用。
摘要由CSDN通过智能技术生成
K-means聚类算法简述

K-means聚类算法有个大前提, 就是面对一堆数据, 我们事先知道这些数据的种类数.
聚类算法通过迭代计算数据与中心点的距离, 最终锁定种类中心的方式, 实现数据的分类.

代码案例

使用k聚类算法对用户购物篮进行分类

数据集链接 提取码: n53x


import pandas as pd
# 导入特征降维工具
from sklearn.decomposition import PCA
# 导入聚类算法估计器
from sklearn.cluster import KMeans

# 商品所属具体物品类别
# aisle_id, aisle
aisles = pd.read_csv("D:/shopdata/aisles.csv")
# 商品信息
# product_id, product_name, aisle_id, department_id, ....
products = pd.read_csv("D:/shopdata/products.csv")
# 用户订单信息
# order_id, user_id, eval_set, order_number, ...
orders = pd.read_csv("D:/shopdata/orders.csv")
# 订单与商品信息
# 字段: order_id, product_id, add_to_cart_roder, reordered, ...
order_products_prior = pd.read_csv("D:/shopdata/order_products__prior.csv")

# 合并表信息为一张表
ap = pd.merge(aisles, products, on=["aisle_id", "aisle_id"])
oo = pd.merge(orders[:100000], order_products_prior[:100000], on=["order_id", "order_id"])
apoo = pd.merge(ap, oo[:100000], on=["product_id", "product_id"])

# 交叉表信息, 获取user_id 所对应的aisle物品类别信息
cross_data = pd.crosstab(apoo["user_id"], apoo["aisle"])

# 特征工程: 特征降维
# n_components 保存原数据信息的百分比
pca = PCA(n_components=0.95)
data = pca.fit_transform(cross_data)

# 使用聚类算法估计器计算模型
kmeans = KMeans(n_clusters=5)
kmeans.fit(data)

# 使用模型预测部分数据
res = kmeans.predict(data[:100])
print(res)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__万波__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值