利用python实现对分类变量与数值变量混合的数据进行聚类分析

本文介绍了如何处理包含分类变量和数值变量的混合数据进行聚类分析。通过创建虚拟变量(0,1)转换分类变量,并应用k-modes和k-prototypes算法进行聚类,帮助理解用户群体划分。" 131678352,5564205,华为OD机试C++实战:字符串压缩解压算法,"['华为OD机试', 'C++编程', '算法', '字符串处理', '开发语言']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近朋友想请我帮忙分析一下关于他们公司客户群体的数据,他的目的是希望将用户分为几个类别,当然我首先想到的便是聚类了。但是数据中有一个问题令我十分困惑,那便是数据集中既有分类变量又有数值变量,针对这种情况我们应该怎么处理呢?

经过一番搜索与尝试,我个人利用了两种方法,仅供大家参考。

一、数据预览

当然,作为一个数据分析师,第一步要对数据进行初步探索,
import pandas as pd 
import numpy as np
np.set_printoptions(suppress=True)
data = pd.read_csv("123.csv",encoding="gb2312")#载入数据
data.describe()
data.info()#数据预览
 
  
  
  
del data["Chassis number"]#删除无关的行
当然,还要进行数据的预处理,删除缺失值等等,但是因为重点不在这就略过了。

二、两种聚类方法

2.1创建虚拟变量(0,1)

第一种方法便是将分类变量转换为虚拟变量,然后运用聚类方法进行聚类。让我们来看看处理过程
dummies_Model = pd.get_dummies(data['Model'], prefix='Model')#将变量转化为虚拟变量
df = pd.concat([data,dummies_Model], axis=1)#加入原本数据框

from sklearn.cluster import DBSCAN
train_np = df.as_matrix()
params = ((0.2, 5), (0.2, 10), (0.2, 20), (0.3, 5), (0.3, 10), (0.3, 15))

for i in range(6):
    eps, min_s
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值