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

使用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.lryc.cn/news/253040.html

相关文章:

  • 静态HTTP和动态HTTP有什么区别
  • 分享66个在线客服JS特效,总有一款适合您
  • Backend - Django JsonResponse HttpResponse
  • 第四阶|自在行草 暄桐教室,林曦书法 从书法之美到生活之美
  • kubernetes详解——从入门到入土(更新中~)
  • VScode异常处理 (因为在此系统上禁止运行脚本)
  • (5h)Unity3D快速入门之Roll-A-Ball游戏开发
  • 分享86个选项卡TABJS特效,总有一款适合您
  • 【Linux】Linux基础
  • 动态规划求解 fibonacci 数列
  • js最大公约数的实现有哪些办法
  • 盘后股价狂飙16% — GitLab的DevOps产品在AI时代展现强劲财务业绩
  • unity UI特效遮罩
  • 编程模拟支付宝能量产生过程--数据控制流
  • SQL Sever 基础知识 - 数据筛选(1)
  • 2024 Move 中文开发者大会将于1月13–14日在上海举办
  • 基于PHP的在线日语学习平台
  • 解决element ui tree组件不产生横向滚动条
  • mysql的InnoDB存储引擎
  • MCU 的 TOP 15 图形GUI库:选择最适合你的图形用户界面(二)
  • 软件工程 单选多选补充 复刻
  • 微前端个人理解与简单总结
  • PC端企业微信hook协议开发,获取要群发的客户群id
  • RabbitMQ安装说明
  • scrapy的建模及管道的使用
  • Hadoop学习笔记(HDP)-Part.04 基础环境配置
  • 【Linux】进程控制--进程创建/进程终止/进程等待/进程程序替换/简易shell实现
  • 用pip更新、安装python的包
  • spring boot 事件机制
  • 分布式版本管理系统---->Git(Linux---centos(保姆式)讲解1)