当前位置: 首页 > 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]

 

相关文章:

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

对汽车是否值得购买,进行聚类分析: 1、数据指标解释: buying, 购买费用 maint, 维修费用 doors, 车门数量 person, 乘坐人数 lug_boot, 行李箱容量 safety, 安全性 2、对数据进行转换 将字符串转换映射量化为数字 数据加载&#xff1a…...

网络编程9.10

使用数据库完成工人管理系统: ubuntuubuntu:DB$ ubuntuubuntu:DB$ cat 2.c #include <myhead.h> #include <sqlite3.h> #include <string.h>typedef struct {int id;char name[20];double salary; } Worker;int do_insert(sqlite3 *ppDb) {Worker work;pri…...

如何在SQL Server中恢复多个数据库?

一次性恢复多个 SQL数据库吗可以吗&#xff1f; "是的&#xff0c;可以一次性恢复多个 SQL 数据库。通常情况下&#xff0c;只要备份文件的名称与相应的数据库匹配&#xff0c;且没有附加的日期或时间信息&#xff0c;就可以通过有效的 T-SQL 脚本来完成恢复。如果你希望…...

炸裂!新版 SD WebUI Forge 出图速度更快!支持最新Flux 模型!(保姆级安装教程)

大家是不是经常为SD WebUI卡顿、爆显存而苦恼?一启动SD 电脑就开始发烫&#xff0c; 尤其低显存用户屡屡"中招",不得不一遍遍重启。作为AI绘画的必备工具&#xff0c;WebUI却还有这么多"坑"&#xff0c;着实让人不爽!&#x1f620; 好消息是&#xff0c;…...

laserOdometry.cpp源码注释

本博客用于a-loam源码学习&#xff0c;用于和slam初学者一起学习。 #include <cmath>#include <nav_msgs/Odometry.h>#include <nav_msgs/Path.h> //这两行代码是C中包含头文件的指令&#xff0c;它们用于在ROS&#xff08;Robot Operating System&#xf…...

STM32时钟配置图详解

一图概述&#xff1a; 左侧输入时钟源 Input Frequency (LSE/LSI/HSI/HSE) LSE (Low-Speed External)&#xff1a;外部32.768 kHz晶体振荡器&#xff0c;通常用于RTC&#xff08;实时时钟&#xff09;。LSI (Low-Speed Internal)&#xff1a;内部低速时钟&#xff0c;频率为…...

Vscode——调试时,修改变量值

第一步&#xff1a;点击变量&#xff0c;鼠标右键 第二步&#xff1a;点击 设置值...

1. 初识LLM API:环境配置与多轮对话演示

其实AI应用并不是一个什么很高大上的东西&#xff0c;你可以将它当作一个文字的“调库”行为&#xff0c;“调库”只需要知道库名就行了&#xff0c;这里实际也是如此。甚至你只需要知道你想问什么&#xff0c;将你的消息作为输入&#xff0c;就能从大模型得到输出。而这个“库…...

【AI编程助手】VsCode插件--通义灵码

目录 摘要 一、插件安装 二、“通义灵码” 使用 三、官网教程 四、总结 五、参考信息 摘要 通义灵码是一款强大的 AI 编程助手。它能够理解编程相关的复杂逻辑&#xff0c;为开发者提供高效、准确的代码生成与优化建议。在编程过程中&#xff0c;它可以辅助处理各种任务&…...

9月10号的学习

//界面1 头文件 signals://界面1的自定义信号void my_signal(); private slots:void on_pushButton_2_clicked();void on_pushButton_clicked(); //界面1 .cpp文件 void Widget::on_pushButton_2_clicked() {QMessageBox msg(QMessageBox::Warning,"警告","是否…...

QtC++截图支持窗口获取

介绍 在截图工具中你会发现&#xff0c;接触到窗口后会自动圈出目标窗口,个别强大一点的还能进行元素识别可以自动圈出元素&#xff0c;那么今天简单分析一下QTc如何获取窗口并圈出当前鼠标下的窗口。 介绍1.如何获取所有窗口2.比较函数3.实现窗口判断 结尾 1.如何获取所有窗口…...

料品档案没有配置主供应商信息

这个问题经常会出现在普通用户的面前。没有合适的工程人员去打理料品档案。信息是缺漏的。用友给出来的提示&#xff0c;也让人摸不着头脑。只能是记下来备用吧。...

springboot属性加载优先级和常见命令行属性

属性加载优先级&#xff1a; 1.SpringApplication&#xff1a;启动的main方法里注入的属性 2.PropertySource&#xff1a;通过注解 加载的数据配置文件 3.Config data file&#xff1a;application.yml/.properties 4.OS environment variable&#xff1a;环境变量 5.Command l…...

Math Reference Notes: 因式定理

文章目录 1. 因式定理的定义2. 因式定理的数学表达&#xff1a;3. 因式定理的推导4. 因式定理的含义5. 因式定理的应用6. 因式定理与余式定理的关系7. 因式定理的应用领域8.因式定理的局限性 因式定理是多项式代数中的一个重要工具&#xff0c;帮助我们通过多项式的根来因式分解…...

Kubernetes------Service

目录 一、属性说明 二、定义和基本配置 1、定义 2、创建Service 2.1、typeClusterIP 2.2、typeNodePort 2.3、固定IP访问 三、Service、EndPoint、Pod之间的关系 四、服务发现 1、基于Service中IP访问外部服务 2、基于Service中域名访问外部服务 五、Ingress的安装和使…...

C#的LINQ语句

在 C# 中&#xff0c;LINQ&#xff08;Language Integrated Query&#xff09;是一种强大的查询技术&#xff0c;它允许你使用熟悉的 C# 语法来查询数据集合。LINQ 可以用于查询各种数据源&#xff0c;包括数组、列表、数据集、SQL数据库等。 以下是一些基本的 LINQ 语句示例&…...

项目实战系列三: 家居购项目 第三部分

文章目录 &#x1f343;后台分页&#x1f345;后台分页导航 &#x1f343;首页分页&#x1f345;首页分页导航&#x1f345;首页搜索&#x1f345;两个奇怪的问题&#x1f345;会员显示登录名&#x1f345;注销登录&#x1f345;验证码 &#x1f343;后台分页 程序框架图 1.…...

【WPF】Border的使用

在 WPF 中&#xff0c;Border 控件是一个非常实用的容器控件&#xff0c;它可以用来为其他控件添加边框、背景颜色、边距等样式。Border 本身没有内置的行为&#xff0c;但是它可以包含一个子元素&#xff0c;并且可以通过各种属性来自定义外观。 Border基本属性 Child: 表示…...

机器学习(西瓜书)第 4 章 决策树

4.1 决策树基本流程 决策树模型 基本流程 在第⑵种情形下&#xff0c;我们把当前结点标记为叶结点&#xff0c;并将其类别设定为该结点所含样本最多的类别&#xff1b;在第⑶种情形下&#xff0c;同样把当前结点标记为叶结点&#xff0c;但将其类别设定为其父结点所含样本最多…...

8、值、指针、引用作为参数或返回值

一、作为参数 1、值传递 #include <iostream> using namespace std;void swap(int a, int b) {cout << __FUNCTION__ << "交换前a:" << a << " b:" << b << endl;int tmp a;a b;b tmp;cout << __FUN…...

向量——通俗地解释

1. 向量 向量是一个既有大小(模)又有方向的对象&#xff0c;它可以用来描述空间中的位置、力或速度等量。我们可以从物理、数学和计算机的角度来看待向量&#xff0c;这三种观点看似不同却有关联。 &#xff08;1&#xff09;在物理专业视角下&#xff0c;向量是空间中的箭头&a…...

新书宣传:《量子安全:信息保护新纪元》

《量子安全&#xff1a;信息保护新纪元》 前言本书的看点本书的目录结语 前言 你好&#xff01; 这是我第一次发布类广告的博文&#xff0c;目的也很单纯&#xff0c;希望以作者的身份介绍一下自己出版的图书——《量子安全&#xff1a;信息保护新纪元》。此书于2024年7月出版…...

Android Framework(五)WMS-窗口显示流程——窗口布局与绘制显示

文章目录 relayoutWindow流程概览应用端处理——ViewRootImpl::setView -> relayoutWindowViewRootImpl::setViewViewRootImpl::performTraversalsViewRootImpl::relayoutWindow Surface的创建WindowManagerService::relayoutWindow了解容器类型和Buff类型的SurfaceBuff类型…...

【计网】计算机网络基础

当自律变成一种本能的习惯&#xff0c; 你就会享受到它的快乐。 --- 村上春树 --- 初识计算机网络 1 初识协议1.1 协议分层1.2 OSI七层模型1.3 TCP / IP协议 2 初识局域网2.1 什么是局域网2.2 MAC地址2.3 局域网通信 3 简单认识IP地址 1 初识协议 1.1 协议分层 首先&#…...

秃姐学AI系列之:实战Kaggle比赛:图像分类(CIFAR-10)

目录 准备工作 整理数据集 将验证集从原始的训练集中拆分出来 整理测试集 使用函数 图像增广 读取数据集 定义模型 定义训练函数 训练和验证数据集 对测试集进行分类并提交结果 准备工作 首先导入竞赛需要的包和模块 import collections import math import os i…...

nginx: [error] invalid PID number ““ in “/run/nginx.pid“

出现这个报错的原因 &#xff1a; 空值&#xff1a;“/run/nginx.pid” 文件为空或者内容不是有效的PID数字 文件损坏&#xff1a;如果PID文件被意外修改&#xff0c;例如被其他程序覆盖了内容&#xff0c;可能会显示为无效。 路径错误&#xff1a;Nginx无法找到指定的PID文件…...

Java使用Apache POI向Word文档中填充数据

Java使用Apache POI向Word文档中填充数据 向一个包含占位符的Word文档中填充数据&#xff0c;并保存为新的文档。 准备工作 环境搭建 在项目中添加Apache POI依赖。在pom.xml中添加如下依赖&#xff1a; <dependencies><dependency><groupId>org.apache.po…...

Gitflow基础知识

0.理想状态 现状 听完后的理想状态 没使用过 git 知道 git 是什么&#xff0c;会用 git 基础流程命令 用过 git&#xff0c;但只通过图形化界面操作 脱离图形化界面操作&#xff0c;通过 git 命令操作 会 git 命令 掌握 gitflow 规范&#xff0c;合理使用 rebase 和解决…...

NLP基础及其代码-tokenizer

基础知识 NLP-分词器&#xff1a;SentencePiece【参考Chinese-LLaMA-Alpaca在通用中文语料上训练的20K中文词表并与原版LLaMA模型的32K词表进行合并的代码】_sentencepiece 中文训练-CSDN博客 【OpenLLM 008】大模型基础组件之分词器-万字长文全面解读LLM中的分词算法与分词器…...

OpenCV结构分析与形状描述符(8)点集凸包计算函数convexHull()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 查找一个点集的凸包。 函数 cv::convexHull 使用斯克拉斯基算法&#xff08;Sklansky’s algorithm&#xff09;来查找一个二维点集的凸包&#…...