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)
相关文章:

08- 汽车产品聚类分析综合项目 (机器学习聚类算法) (项目八)
找出性价比较高的车 LabelEncoder: python:sklearn标签编码(LabelEncoder) sklearn.preprocessing.LabelEncoder的使用:在训练模型之前,通常都要对数据进行一定得处理。将类别编号是一种常用的处理方法,比如把类别“电脑”,“手机…...

揭开苹果供应链,如何将其命运与中国深度捆绑
前 言 诺基亚在2007年时拥有9亿用户,在手机市场上占据主导地位,福布斯在当时以“谁能赶上手机之王?”为标题刊登了一篇关于该公司的报道,与此同时,苹果公司推出了iPhone系列产品。16年后,苹果公司以充足的…...

Mybatis 之useGeneratedKeys注意点
一.例子 Order.javapublic class Order {private Long id;private String serial; }orderMapper.xml<?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd…...

数据结构---时间复杂度
专栏:数据结构 个人主页:HaiFan. 专栏简介:开学数据结构,接下来会慢慢坑新数据结构的内容!!!! 时间复杂度前言1.算法效率1.1如何衡量一个算法的好坏1.2算法的复杂度2.时间复杂度2.1大…...

如何保证集合是线程安全的 ConcurrentHashMap如何实现高效地线程安全?
第10讲 | 如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全? 我在之前两讲介绍了 Java 集合框架的典型容器类,它们绝大部分都不是线程安全的,仅有的线程安全实现,比如 Vector、Stack,在性能方面也…...
C++对象模型和this指针
成员变量和成员函数分开存储:基本概念:在C中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上每个空对象都会有一个独一无二的内存地址,所以,空对象占用内存空间的大小为1代码实现:#i…...

kubernetes教程 --Pod调度
Pod调度 在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足的需求,因为很多情况下,我们想控制某些Pod到达某…...

功率放大器科普知识(晶体管功率放大器的注意事项)
虽然功率放大器是电子实验室的常用仪器,但是很多人对于它却没有清晰的认识,下面就让安泰电子来为大家介绍功率放大器的科普内容以及使用注意事项,希望大家可以对功率放大器有清晰的认识。功率放大器可以把输入信号的功率放大,以满…...

CentOS 7转化系统为阿里龙蜥Anolis OS 7
转载:原社区CentOS 7迁移Anolis OS 7迁移手册 一、注意事项 Anolis OS 7生态上和依赖管理上保持跟CentOS7.x兼容,一键式迁移脚本centos2anolis.py,实现CentOS7.x到Anolis OS 7的平滑迁移。 使用迁移脚本前需要注意如下事项: 迁…...

【快速复习】一文看懂 Mysql 核心存储 隔离级别 锁 MVCC 机制
一文看懂 Mysql 核心存储 & 隔离级别 & 锁 & MVCC 机制 Mysql InnoDB 引擎下核心存储 数据&索引存储 IBD 文件 mysql 实际存储采用 B 树结构。 B 树是一种多路搜索树,其搜索性能高于 B 树 所有叶节点在同一深度,保证搜索效率仅叶节…...

面试题----集合
概述 从上图可以看出,在Java 中除了以 Map 结尾的类之外, 其他类都实现了 Collection 接⼝。 并且,以 Map 结尾的类都实现了 Map 接⼝List,Set,Map List (对付顺序的好帮⼿): 存储的元素是有序的、可重复的。 Set (注重独⼀⽆⼆…...

XSS注入基础入门篇
XSS注入基础入门篇1.XSS基础概念2. XSS的分类以及示例2.1 反射型XSS2.1.1 示例1:dvwa low 级别的反射型XSS2.1.2 攻击流程2.2 DOM型XSS2.2.1 示例2:DOM型XSS注入1.环境部署2.基础版本3.进阶绕过2.3 存储型XSS2.3.1 示例1:dvwa low示例2.3.2 攻…...
刷题 - 数据结构(二)链表
1. 链表 1.1 题目:合并两个有序链表 链表的建立与插入:关键在于留出头部,创建迭代指针。 ListNode* head new ListNode; // 通过new 创建了一个数据类型为ListNode的数据 并把该数据的地址赋值给ListNodeListNode* p 0; // 再创建一个数据…...

用于隔离PWM的光耦合器选择和使用
光耦合器(或光隔离器)是一种将电路电隔离的器件,不仅在隔离方面非常出色,而且允许您连接到具有不同接地层或在不同电压电平下工作的电路。光耦合器具有“故障安全”功能,因为如果受到高于最大额定值的电压,…...

面试完阿里,字节,腾讯的测试岗,复盘以及面试总结
前段时间由于某些原因辞职了,最近一直在面试。面试这段时间,经历过不同业务类型的公司(电商、酒店出行、金融、新能源、银行),也遇到了很多不同类型的面试官。 参加完三家大厂的面试聊聊我对面试的一些看法࿰…...

分享一个外贸客户案例
春节期间一个外贸人收到了客户的回复,但因为自己的处理方式造成了一个又一个问题,我们可以从中学到一些技巧和知识。“上次意大利的客人询价后,一直没回复(中间有打过电话,对方说口语不行,我写过邮件跟进过…...

【Kubernetes】第二篇 - 购买阿里云 ECS 实例
一,前言 上一篇,简单介绍了 CI/CD 的概念以及 ECS 服务规划,搭建整套服务需要三台服务器,配置如下: ECS 配置启动服务说明2核4GJenkins Nexus Dockerci-server2核4GDocker Kubernetesk8s-master1核1GDocker Kube…...

数影周报:据传国内45亿条快递数据泄露,聆心智能完成Pre-A轮融资
本周看点:据传国内45亿条快递数据泄露;消息称微软解雇150 名云服务销售;消息称TikTok计划在欧洲再开两个数据中心;衣服长时间放购物车被淘宝客服嘲讽;聆心智能完成Pre-A轮融资......数据安全那些事据传国内45亿条快递数…...

Leetcode力扣秋招刷题路-0073
从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:mat…...

遥感数字图像处理
遥感数字图像处理 来源:慕课北京师范大学朱文泉老师的课程 遥感应用:遥感制图、信息提取 短期内了解知识结构–>有选择的剖析经典算法原理–>系统化知识结构、并尝试实践应用 跳出算法(尤其是数学公式) 关注原理及解决问…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...