使用K-means把人群分类

1.前言

K-mean 是无监督的聚类算法

算法分类:

2.实现步骤

1.数据加工:把数据转为全数字(比如性别男女,转换为0 和 1)

2.模型训练 fit

3.预测

3.代码

原数据类似这样(source:http:img-blog.csdnimg.cn/20201212150816452.png):

代码:

from sklearn.cluster import KMeans
from sklearn import preprocessing
skill_info_df.to_excel("C:/work/20230224待分类数据/test.xlsx")# fordrop the string people Chinese name
for_train_skill_info_df = skill_info_df.iloc[:, 1:]# set k
k_model = KMeans(n_clusters=5)# 数据归一化
min_max_scaler = preprocessing.MinMaxScaler()train_x = min_max_scaler.fit_transform(for_train_skill_info_df)# 训练模型
k_model.fit(train_x)predict_y = k_model.predict(train_x)print(predict_y)# add predict result to data
skill_info_df['class'] = predict_yskill_info_df.to_excel("C:/work/20230224预测结果/classified_info.xlsx")

4.常见问题

4.1 数据加工:  行列转换:

python实现列转行--pivot_table函数-CSDN博客

ps:pivot 函数遇到为空情况填充NAN,导入模型会报字符串非数字错误。
解决办法:设置 fill_value 参数:数据为空情况处理,默认填充NAN值。可以修改如果原数据为空,比如设为0

4.2 数据加工:查找df行特定列的值

问题描述:当使用  isin 函数 或者 == 判断时候,返回的是Series 数据类型。不是单独的数值all_prod_df[all_prod_df['product_id'].isin(sample_list)]

直接投到模型中训练会报错 

pandas的iloc和loc行列定位-CSDN博客

4.3 修改df数据中的男女为 0 1

basic_info_df['性别'][basic_info_df['性别'] == '男'] = 1
basic_info_df['性别'][basic_info_df['性别'] == '女'] = 0

4.4 df中新增一列,根据list新增

方法1:直接指定df列名赋值为list即可

skill_info_df['age'] = age_list

ps:list的长度要和df对齐

方法二:

df新增一列数据,并指定列名-CSDN博客

4.5 根据df的几列创建新的df

直接 df1 = df[[ '列名' ]]

python中dataframe,df中挑选几列生成新df-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/238377.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【力扣 面试题02.07链表相交】一种思路极其清晰的解法

力扣一单简单题,看完大佬的题解真是佩服得五体投地! 虽是一道简单题,当我吭哧吭哧写了几十行后,看到大佬仅仅几行直接秒掉,只能说算法的本质还是数学,数学逻辑思维真是太重要了,有时候真得慢慢去…

电子学会C/C++编程等级考试2021年06月(四级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:数字三角形问题 (图1) 图1给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 注意:路径上的每一步只能从一个数走到下一层上和它…

JavaScript 基本数据类型

JavaScript 基本数据类型 目录 JavaScript 基本数据类型 一、数字型(Number型) 1、整型数据 2、浮点型数据 二、字符串型 1、单引号括起来的一个或多个字符: 2、双引号括起来的一个或多个字符: 3、单引号定界的字符串中可…

HTML5 的全局属性 hidden 和 display:none 的关系

目录 1,hidden 和 display:none 的关系2,其他隐藏元素的方式2.1,语意上的隐藏2.2,视觉上的隐藏 1,hidden 和 display:none 的关系 hidden - MDN 参考 一句话总结:hidden 是HTML5 新增的全局布尔属性&…

【小布_ORACLE笔记】Part11-6 RMAN Backups

【小布_ORACLE笔记】Part11-6 RMAN Backups 1.track文件的作用 当做差异性备份时,server process对应的RMAN客户端的server process就不用去每个块每个块的检查,只要到trackfile 里面去读一下,看哪个块改变了就直接把哪个块备份下来&#x…

应用于智慧交通的AI边缘计算盒子+AI算法软硬一体化方案

作为城市物质交换的关键通道、负责“输送养分”的交通脉络,承担着出行、货运、建设、联通、共治等城市运作/治理等繁重任务;作为新基建不可或缺的一部分,信迈通过前沿的AI技术实现高效的交通治超(超长、超重、超速)、治…

二、设置三台虚拟机的内存、MAC地址、IP地址

目录 1、配置内存 2、配置MAC地址 2.1 配置node2的MAC地址

Mongodb 开启oplog,java监听oplog并写入关系型数据库

开启Oplog windows mongodb bin目录下找到配置文件/bin/mongod.cfg,配置如下: replication:replSetName: localoplogSizeMB: 1024双击mongo.exe 执行 rs.initiate({_id: "local", members: [{_id: 0, host: "localhost:27017"}]})若出现如…

CGAL中2D三角剖分的数据结构

1、定义 三角剖分数据结构是一种设计用于处理二维三角剖分表示的数据结构。三角剖分数据结构的概念主要是设计用作CGAL2D三角剖分类的数据结构,这些类是嵌入平面中的三角剖分。然而,这个概念似乎更一般,可以用于任何可定向的无边界三角剖分曲…

Monkey

一、Monkey的概念 “猴子测试”是指没有测试经验的人甚至对计算机根本不了解的人(就像猴子一样)不需要知道程序的任何用户交互方面的知识,如果给他一个程序,他就会针对他看到的界面进行操作,其操作是无目的的、乱点乱按…

scrapy爬虫中间件和下载中间件的使用

一、关于中间件 之前文章说过,scrapy有两种中间件:爬虫中间件和下载中间件,他们的作用时间和位置都不一样,具体区别如下: 爬虫中间件(Spider Middleware) 作用: 爬虫中间件主要负…

用 CloudCanal 快速验证阿里云 EMR for StarRocks 和 Doris

背景 StarRocks 和 Doris 是近两年来相当流行的、国产的、开源的实时数仓,不仅数据检索、分析能力出众,而且数据准备实时性好、准确度高、使用丝滑,可如同在线数据库般使用。 CloudCanal 在早期即支持此两种实时数仓,并且经过多…