本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.
文章目录
Hi,大家好,这里是丹成学长的毕设系列文章!
对毕设有任何疑问都可以问学长哦!
这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是
基于k-means的大数据客户细分
磊学长这里给一个题目综合评分(每项满分5分)
难度系数:4分
工作量:4分
创新点:3分
刺 选题指导, 项目分享:
https://blog.csdn.net/Mr_DC_IT/article/details/126460477
1 数据分析步骤
1、导入必要的库
2、了解数据
3、数据可视化
4、使用k-means 进行聚类分析
2 数据观察与预处理
2.1 引入库
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')
2.2 查看数据
df=pd.read_csv('/home/kesci/input/1564558710/超市数据.csv') df.head()
2.3 数据可视化
2.3.1 查看数据分布
2.3.2 单独查看直方图分布
2.3.3 样本数据中的性别比
2.3.4 年龄与年收入之间的关系
2.3.5 年龄与消费得分之间的关系
2.3.6 年龄与消费得分与年收入之间的分布
2.3.7 数据展示呈现代码
篇幅有限, 数据呈现代码就不贴出来的, 需要的同学联系博主获取。
3 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()
映射到三维空间上的分布如下:
刺 选题指导, 项目分享:
Be First to Comment