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

news2024/11/14 20:07:02

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

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.coloradmin.cn/o/2122227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编程珠玑3-8

问题 8.[S.C.Johnnson]七段显示设备实现十进制数字: 的廉价显示。七段显示通常如下编号: 编写一个使用5个七段显示数字来显示16位正整数的程序。输出为一个5个字节的数组,当且仅当数字j中的第i段点亮时,字节j中的位i置1 分析 简…

Mac视频vedio转成gif图

方法一:系统自带:Keynote 1、用"Keynote"创建幻灯片。 2、把视频拖拽进入。 3、Keynote右上角有个“文稿”,点击调整幻灯片大小。(坑点:按比例调整) 4、文件 -> 导出为“Gif动画”。 方法…

TDesign:腾讯的开源企业级前端框架,能和ant-design一战吗?

TDesign 是一套拥有完整的 设计价值观 和 视觉风格指南 的企业级设计体系,同时提供了丰富的 设计资源。TDesign 在设计体系基础上产出基于 Vue、React、小程序等业界主流技术栈的组件库解决方案。是不是有点晚了? 请大家各抒己见。

【开源大模型生态7】华为的盘古大模型

鹏程盘古模型是全球首个全开源2000亿参数的自回归中文预训练语言大模型,在知识问答、知识检索、知识推理、阅读理解等文本生成领域表现突出。 2070亿参数,64层。 这里注意几个概念。 参数(Parameters): 参数是指构成模…

K8s中如何使用etcd进行集群信息的备份与恢复

这里写目录标题 ETCD是什么?1. **`etcd`(服务)**2. **`etcdctl`(客户端工具)**如何安装etcdctl(客户端工具)查看目前K8s自带etcd中的版本信息安装对应版本的etcdutl工具下载 `etcdutl` 3.5.7 版本配置环境变量创建备份文件验证一下备份的快照文件备份文件恢复的效果演示…

MmAP(论文解读) : Multi-Modal Alignment Prompt for Cross-Domain Multi-Task Learning

MmAP:跨领域多任务学习的多模态提示对齐 AAAI 2024 摘要 多任务学习(Multi-Task Learning,MTL)同时训练多个相关的任务,从而能够提高单个任务的性能。通常,一个多任务网络架构包含共享backbone和任务特定…

根据NVeloDocx Word模板引擎生成Word(三)

基于永久免费开放的《E6低代码开发平台》的Word模版引擎NVeloDocx,实现根据Word模版生成Word文件,前面2篇已经非常详细介绍了《主表单字段》,《子表记录循环输入到表格》。那这一篇我们就介绍插入单张图片、二维码,条形码等等&…

区块链媒体:区块链媒体套餐倾心推广解析!

塞翁失马,区块链媒体套餐,两者看似毫不相干,实际上却反映了区块链技术的广泛运用和媒体领域的创新模式。本文将带你深入了解这一新兴领域的背后故事,并分析区块链媒体套餐推广的关键因素。 塞翁失马的寓意 塞翁失马是中国古代的一…

实例讲解电动汽车车速计算算法及Simulink建模方法

电动汽车的车速信号是一个非常重要的信号,在VCU软件开发中,车速一般需要通过采集其他控制器车速或者通过电机转速间接计算出来,作为仪表显示车速、限速控制、剩余续驶里程计算等使用,因此,在VCU软件开发中,…

有什么免费好用的ai写作软件?2024帮助你快速进行写作的软件

有什么免费好用的ai写作软件?2024帮助你快速进行写作的软件 AI写作软件如今在提升写作效率、生成灵感、以及帮助完成复杂的写作任务方面表现得越来越出色。以下是五款免费且好用的AI写作软件,它们能够帮助你快速进行写作,无论是博客文章、市…

echarts多组堆叠柱状图

一、效果图 二、代码实现 1、创建容器 <el-card class"box-card"><div slot"header" class"clearfix"><span>课堂学习</span></div><div id"class-learning" style"height: 360px">&l…

strtok与strtok_r函数及线程安全问题

#include <string.h> char *strtok(char *str, const char *delim); char *strtok_r(char *str, const char *delim, char **saveptr); 总的&#xff1a;这两个函数都是分割字符串的函数&#xff0c;但是前者是线程不安全的&#xff0c;后者是线程安全的。 我们先从使用…

网络药理学:分子对接之二:PDB数据库的使用(已知PDB ID)、PubChem数据库如果没有3D结构

PDB数据库使用 官方地址&#xff1a;https://www.rcsb.org/ 首页如下&#xff1a; 我们以热休克蛋白HSP90AA1为例&#xff0c;其PDB ID为7DHG&#xff0c;所以我们在搜索栏输入7DHG&#xff1a; 主要关注红框里的几个地方。 Download 下载文件&#xff0c;一般选择PDB For…

车载以太网

目录 概述 发展历史 总体架构 相关组织介绍 主流车载网络系统 各种总线比较 概述 随着汽车电动化进程的加速推进,手机控制车辆以及彼此交互的场景不断扩大,可以想象未来联网需求只会不断拓展,无论是车内还是车外的联网需求都不约而同的提出了更多网络带宽的重要性。 为…

知识赋能:构建高效测试团队的关键

目录 ​​​​​​问题背景 知识库的重要性 新员工的融入与关键岗位的风险控制 知识库的构成 常见问题讨论 团队历史包袱重、老员工不配合&#xff0c;怎么办&#xff1f; 1. 明确愿景和目标 2. 激励与认可 3. 赋予责任与参与感 4. 循序渐进&#xff0c;逐步推进 5.…

C# 路径操作

一、打开程序所在路径 try{string debugPath System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);System.Diagnostics.Process.Start(debugPath);}catch (Exception ex){MessageBox.Show("无法打开目录&#xff1a;" e…

[开源]YOLOv8+Pyside6的交通红绿灯目标检测源码

[开源]YOLOv8Pyside6的交通红绿灯目标检测源码 一. 项目介绍源码链接 该系统是yolov8目标检测可视化界面检测系统&#xff0c;支持图片、视频、摄像头检测. 系统的模型是自己训练的模型, 源码自取 源码链接 如需自己训练模型, 数据集链接 二. 作者的运行环境 python3.8tor…

一文精通Fourier Transform--傅里叶变换

导读&#xff1a; 在数字信号处理中&#xff0c;我们把信号分为时域信号与频域信号。傅里叶发现&#xff1a;任何周期信号(时域)都能够由不同频率谐波的正弦波(频域)叠加而成。沟通起时域频域最为关键的一点就是我们要学习的傅里叶变换&#xff08;Fourier Transform&#xff0…

党务政务服务|基于SprinBoot+vue的党务政务服务热线系统(源码+数据库+文档)

党务政务服务热线系统 目录 基于SprinBootvue的党务政务服务热线系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 管理员功能模块 管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博…

威胁建模STRIDE框架

威胁建模STRIDE框架 1.威胁建模框架概述2.STRIDE威胁建模框架欺骗 - 冒充某人或某物篡改 - 未经授权更改数据否认性 - 不宣称对执行的操作负责信息泄露 - 查看不应查看的数据拒绝服务 - 系统繁忙权限提升 - 拥有本不应该拥有的权限 3.后续的威胁发现 1.威胁建模框架概述 威胁建…