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

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

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

一、数据预览

当然,作为一个数据分析师,第一步要对数据进行初步探索,
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
  • 16
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值