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

聚类案例——汽车是否值得购买

对汽车是否值得购买,进行聚类分析:

1、数据指标解释:

  • buying, 购买费用

  • maint, 维修费用

  • doors, 车门数量

  • person, 乘坐人数

  • lug_boot, 行李箱容量

  • safety, 安全性

2、对数据进行转换

  • 将字符串转换映射量化为数字

数据加载: 

import numpy as np
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
import matplotlib.pyplot as plt
data = pd.read_csv('./car_data.txt')
data
X = data.reset_index(drop = True)  #行索引重置
X
X.to_csv('./car_data_new.csv',index = False) #不要行索引
pd.read_csv('./car_data_new.csv')  #加载新保存数据

 

数据转化:

for col in X.columns:print(col,X[col].unique())

结果: 

buying ['vhigh' 'high' 'med' 'low']
maint ['2' '3' '4' '5more']
doors ['2' '4' 'more']
person ['small' 'med' 'big']
lug_boot ['low' 'med' 'high']
safety ['unacc' 'acc' 'vgood' 'good']

 字典映射:

X['buying'] = X['buying'].map({'vhigh':1,'high':2,'med':3,'low':4})
X['maint'] = X['maint'].map({'2':2,'3':3,'4':4,'5more':5})
X['doors'] = X['doors'].map({'2':2,'4':4,'more':5})
X['person'] = X['person'].map({'small':2,'med':5,'big':7})
X['lug_boot'] = X['lug_boot'].map({'low':1,'med':2,'high':3})
X['safety'] = X['safety'].map({'unacc':1,'acc':2,'vgood':3,'good':4})
X
#字典映射  只执行一次,再次执行字典的值为NULL,因为字典的键改变了

 

聚类建模:

kmeans = KMeans(n_clusters = 3)
kmeans.fit(X)
y_= kmeans.predict(X)
silhouette_score(X,y_)

分数: 

0.28526565681580135

筛选最佳聚类条件:

scores = []
for k in range(2,8):kmeans = KMeans(n_clusters=k)kmeans.fit(X)y_ = kmeans.predict(X)score = silhouette_score(X,y_)scores.append(score)
print(scores)
plt.plot(range(2,8),scores)

scores数组: 

[0.3486833182368877, 0.28526565681580135, 0.2607003011258018, 0.23938352073818228, 0.23148278681018836, 0.2285215746743637]

 

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

相关文章:

  • 网络编程9.10
  • 如何在SQL Server中恢复多个数据库?
  • 炸裂!新版 SD WebUI Forge 出图速度更快!支持最新Flux 模型!(保姆级安装教程)
  • laserOdometry.cpp源码注释
  • STM32时钟配置图详解
  • Vscode——调试时,修改变量值
  • 1. 初识LLM API:环境配置与多轮对话演示
  • 【AI编程助手】VsCode插件--通义灵码
  • 9月10号的学习
  • QtC++截图支持窗口获取
  • 料品档案没有配置主供应商信息
  • springboot属性加载优先级和常见命令行属性
  • Math Reference Notes: 因式定理
  • Kubernetes------Service
  • C#的LINQ语句
  • 项目实战系列三: 家居购项目 第三部分
  • 【WPF】Border的使用
  • 机器学习(西瓜书)第 4 章 决策树
  • 8、值、指针、引用作为参数或返回值
  • 向量——通俗地解释
  • 新书宣传:《量子安全:信息保护新纪元》
  • Android Framework(五)WMS-窗口显示流程——窗口布局与绘制显示
  • 【计网】计算机网络基础
  • 秃姐学AI系列之:实战Kaggle比赛:图像分类(CIFAR-10)
  • nginx: [error] invalid PID number ““ in “/run/nginx.pid“
  • Java使用Apache POI向Word文档中填充数据
  • Gitflow基础知识
  • NLP基础及其代码-tokenizer
  • OpenCV结构分析与形状描述符(8)点集凸包计算函数convexHull()的使用
  • 灰光模块,彩光模块-介绍