毕设 基于大数据挖掘分析的客户细分 (k-means聚类分析)


前言

今天向同学们介绍一下大数据处理知识, 顺便拿一个项目来练练手,该项目可以用作毕业设计

学长在这使用的是一个超市数据,使用的算法是kmeans算

🧿 选题指导, 项目分享:见文末


提示:以下是本篇文章正文内容,下面案例可供参考

1 数据分析步骤

  • 1、导入必要的库
  • 2、了解数据
  • 3、数据可视化
  • 4、使用k-means 进行聚类分析

2 数据观察与预处理

引入库

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
plt.style.use('fivethirtyeight')

from sklearn.cluster import KMeans
import plotly as py
import plotly.graph_objects as go
import warnings
import os
warnings.filterwarnings('ignore')

查看数据

df=pd.read_csv('/home/kesci/input/1564558710/超市数据.csv')
df.head()

在这里插入图片描述
在这里插入图片描述

数据可视化

查看数据分布

在这里插入图片描述

单独查看直方图分布

在这里插入图片描述

样本数据中的性别比

在这里插入图片描述

年龄与年收入之间的关系

在这里插入图片描述

年龄与消费得分之间的关系

在这里插入图片描述

年龄与消费得分与年收入之间的分布

在这里插入图片描述

数据展示呈现代码

篇幅有限, 数据呈现代码就不贴出来的, 需要的同学联系博主获取。

kmeans聚类分析

x1=df[['Age','Spending Score (1-100)']].iloc[:,:].values
from sklearn.cluster import KMeans
inertia=[]
for i in range(1,11):  
    km=KMeans(n_clusters=i,init='k-means++',max_iter=300,n_init=10,random_state=100)
    km.fit(x1)
    inertia.append(km.inertia_)
plt.figure(1,figsize=(12,6))    
plt.plot(range(1,11),inertia)
plt.title('The Elbow Method',fontsize=20)
plt.xlabel('Number of Clusters')
plt.ylabel('inertia')
plt.show()

在这里插入图片描述

km = KMeans(n_clusters = 4, init = 'k-means++', max_iter = 300, n_init = 10, random_state = 100)
y_means = km.fit_predict(x1)

plt.figure(1 , figsize = (12 , 6) )
plt.scatter(x1[y_means == 0, 0], x1[y_means == 0, 1], s = 200, c = 'salmon')
plt.scatter(x1[y_means == 1, 0], x1[y_means == 1, 1], s = 200, c = 'yellowgreen') 
plt.scatter(x1[y_means == 2, 0], x1[y_means == 2, 1], s = 200, c = 'cornflowerblue')
plt.scatter(x1[y_means == 3, 0], x1[y_means == 3, 1], s = 200, c = 'magenta')
plt.scatter(km.cluster_centers_[:,0], km.cluster_centers_[:, 1], s = 100, c = 'black' , label = 'centeroid')

plt.ylabel('Spending Score (1-100)') , plt.xlabel('Age')
plt.legend()
plt.show()

在这里插入图片描述
映射到三维空间上的分布如下:
在这里插入图片描述

最后 - 毕设帮助

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值