当前位置: 首页 > news >正文

08- 汽车产品聚类分析综合项目 (机器学习聚类算法) (项目八)

  • 找出性价比较高的车
  • LabelEncoder:  python:sklearn标签编码(LabelEncoder) sklearn.preprocessing.LabelEncoder的使用:在训练模型之前,通常都要对数据进行一定得处理。将类别编号是一种常用的处理方法,比如把类别“电脑”,“手机”编号为0和1,可使用LabelEncoder函数。

    • 作用:  将n个类别编码为0~n-1之间的整数(包括0和n-1)

  • 找出聚类种类最佳参数
sse =[]
ss = []
for k in range(2,11):kmeans = KMeans(n_clusters= k)kmeans.fit(train_x)sse.append(kmeans.inertia_)ss.append(silhouette_score(train_x,kmeans.predict(train_x)))
  • kmean 聚类算法模型
kmeans = KMeans(n_clusters=8)
kmeans.fit(train_x)
predict_y = kmeans.predict(train_x)   # 预测


汽车产品聚类分析综合项目实战

现在人们购车成为稀松平常,你的第一辆车是什么品牌,你打算什么时候更换车辆?汽车品牌多如牛毛,使用数据分析相关知识点,使用机器学习中的聚类算法,进行建模,从而对根据汽车相关属性对汽车进行类别划分,帮你选好车!熟悉算法建模业务流程,掌握机器学习建模的思想和基本操作。

  • 数据加载
  • 数值编码化
  • 归一化操作
  • Kmeans算法参数筛选
  • 分层聚类使用
  • DBSCAN算法使用
  • 对比不同算法效果

1  导入模块

# 使用 KMeans 进行聚类,导入库
from sklearn.cluster import KMeans  # 聚类算法
from sklearn.metrics import silhouette_score
import matplotlib.pyplot as plt
# 预处理
from sklearn import preprocessing   # 归一化
from sklearn.preprocessing import LabelEncoder  # 标签编码
import pandas as pd
# 矩阵运算
import numpy as np

2  数据加载

data = pd.read_csv('./car_price.csv')
data.shape     # (205, 26)

3  去除无效数据

train_X = data.drop(['car_ID','CarName'],axis = 1)
train_X.shape    # 205, 24

4  特征工程(将属性转换为数值)

# 将非数值特征转换为数值
le = LabelEncoder()
colums = ['fueltype','aspiration','doornumber','carbody','drivewheel','enginelocation','enginetype','cylindernumber','fuelsystem']
for column in colums:# 训练并将标签转换为归一化的代码train_X[column] = le.fit_transform(train_X[column])
train_X

 5  归一化

# 规范化到[0,1] 空间
min_max_scaler = preprocessing.MinMaxScaler()
# MinMaxscaler( )将每个要素缩放到给定范围,怡合数据,然后进行转换
train_x = min_max_scaler.fit_transform(train_X)
train_x

 6  聚类参数选择

6.1 显示所有系统字体

# 查找自己电脑的字体,从中选择
# 本电脑上,选择的STKaiti
from matplotlib.font_manager import FontManager
fm = FontManager()
[font.name for font in fm.ttflist]

6.2 字体设置

plt.rcParams['font.family'] = 'STKaiti'
plt.rcParams['font.size'] = 20

6.3  SSE(簇惯性)

sse =[]
ss = []
for k in range(2,11):kmeans = KMeans(n_clusters= k)kmeans.fit(train_x)sse.append(kmeans.inertia_)ss.append(silhouette_score(train_x,kmeans.predict(train_x)))plt.figure(figsize=(16,6))
x = range(2,11)
plt.subplot(1,2,1)
plt.plot(x,sse,'o-')
plt.xlabel('K')
plt.ylabel('SSE簇惯性')plt.subplot(1,2,2)
plt.plot(x,ss,'r*-')
plt.xlabel('K')
plt.ylabel('轮廓系数')
plt.savefig('./1-聚类簇数.png',dpi = 200)

6.4  聚类运算

kmeans = KMeans(n_clusters=8)
kmeans.fit(train_x)# 预测
predict_y = kmeans.predict(train_x)
predict_y

7  结果分析

7.1  结果合并

result = pd.concat((data,pd.DataFrame(predict_y)),axis =1)result.rename({0:u'聚类结果'},axis = 1,inplace = True)
result

# 分组运算
g1 = result.groupby(by = ['聚类结果','carbody'])[['price']].mean()
g1

 

g2 = g1.unstack()   # 数据重塑
g2

g2.sort_values(by= ('price','sedan'))

 

 7.2  低端轿车聚类结果

# 查看,类别是1的标准三厢车(具体根据分组运算结果确定)
cond = result.apply(lambda x : x['聚类结果'] == 4 and 'sedan' in x['carbody'] ,axis = 1)
columns = ['CarName','wheelbase','price','horsepower','carbody','fueltype','聚类结果']
# 价格降序排名
result[cond][columns].sort_values('price',ascending= False)

7.3  高端轿车聚类结果

# 根据条件(售价)筛选高端轿车(三厢车)
cond = result.apply(lambda x : x['聚类结果'] == 7 and 'sedan' in x['carbody'], axis =1)
columns = ['CarName','wheelbase','price','horsepower','carbody','fueltype','聚类结果']
# 价格降序排名
result[cond][columns].sort_values('price',ascending= False)

7.4  中端 SUV聚类结果

cond = result.apply(lambda x : x['聚类结果'] == 2 and 'wagon' in x['carbody'], axis =1)
columns = ['CarName','wheelbase','price','horsepower','carbody','fueltype','聚类结果']
# 价格降序排名
result[cond][columns].sort_values('price',ascending= False)

http://www.lryc.cn/news/10215.html

相关文章:

  • 揭开苹果供应链,如何将其命运与中国深度捆绑
  • Mybatis 之useGeneratedKeys注意点
  • 数据结构---时间复杂度
  • 如何保证集合是线程安全的 ConcurrentHashMap如何实现高效地线程安全?
  • C++对象模型和this指针
  • kubernetes教程 --Pod调度
  • 功率放大器科普知识(晶体管功率放大器的注意事项)
  • CentOS 7转化系统为阿里龙蜥Anolis OS 7
  • 【快速复习】一文看懂 Mysql 核心存储 隔离级别 锁 MVCC 机制
  • 面试题----集合
  • XSS注入基础入门篇
  • 刷题 - 数据结构(二)链表
  • 用于隔离PWM的光耦合器选择和使用
  • 面试完阿里,字节,腾讯的测试岗,复盘以及面试总结
  • 分享一个外贸客户案例
  • 【Kubernetes】第二篇 - 购买阿里云 ECS 实例
  • 数影周报:据传国内45亿条快递数据泄露,聆心智能完成Pre-A轮融资
  • Leetcode力扣秋招刷题路-0073
  • 遥感数字图像处理
  • 深度学习常用的python函数(一)
  • 2023年美国大学生数学建模A题:受干旱影响的植物群落建模详解+模型代码(一)
  • PPS文件如何转换成PPT?附两种方法
  • ParallelsDesktop安装【亲测可行】
  • 在 Python 中只接受数字作为用户输入
  • 【集合】JAVA基础篇(二)
  • 机房意外掉电导致Elasticsearch的部分index无数据的修复过程
  • Spring入门案例三:注解进行引用类型的自动装配
  • kubernet + kubevirt + ceph 汇总文档
  • 软件测试项目实战(附全套实战项目教程+视频+源码)
  • Python seek()和tell()函数详解