KMeans与深度学习自编码AutoEncoder结合提高聚类效果

本文介绍了如何利用Python处理用户消费数据,并结合KMeans和自编码器(AutoEncoder)进行用户画像聚类。通过预处理数据、使用自编码器进行特征降维,然后用KMeans进行聚类,展示了自编码器在提升聚类效果上的作用。最终通过比较聚类指标,验证了自编码器在高维数据聚类中的优势。
摘要由CSDN通过智能技术生成

感谢关注天善智能,走好数据之路↑↑↑

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

这几天在做用户画像,特征是用户的消费商品的消费金额,原始数据(部分)是这样的:

id goods_name goods_amount

男士手袋 1882.0

淑女装 2491.0

女士手袋 345.0

基础内衣 328.0

商务正装 4985.0

时尚 969.0

女饰品 86.0

专业运动 399.0

童装(中大童) 2033.0

男士配件 38.0

我们看到同一个id下面有不同的消费记录,这个数据不能直接拿来用,写了python程序来进行处理:

test.py#!/usr/bin/python

#coding:utf-8

#Author:Charlotte

import pandas as pd

import numpy as np

import time

#加载数据文件(你可以加载自己的文件,文件格式如上所示)

x=pd.read_table('test.txt',sep = " ")

#去除NULL值

x.dropna()

a1=list(x.iloc[:,0])

a2=list(x.iloc[:,1])

a3=list(x.iloc[:,2])

#A是商品类别

dicta=dict(zip(a2,zip(a1,a3)))

A=list(dicta.keys())

#B是用户id

B=list(set(a1))

# data_class = pd.DataFrame(A,lista)

#创建商品类别字典

a = np.arange(len(A))

lista = list(a)

dict_class = dict(zip(A,lista))

print dict_class

f=open('class.txt','w')

for k ,v in dict_class.items():

f.write(str(k)+'\t'+str(v)+'\n')

f.close()

#计算运行时间

start=time.clock()

#创建大字典存储数据

dictall = {}

for i in xrange(len(a1)):

if a1[i] in dictall.keys():

value = dictall[a1[i]]

j = dict_class[a2[i]]

value[j] = a3[i]

dictall[a1[i]]=value

else:

value = list(np.zeros(len(A)))

j = dict_class[a2[i]]

value[j] = a3[i]

dictall[a1[i]]=value

#将字典转化为dataframe

dictall1 = pd.DataFrame(dictall)

dictall_matrix = dictall1.T

print dictall_matrix

end = time.clock()

print "赋值过程运行时间是:%f s"%(end-start)

输出结果:

{'\xe4\xb8\x93\xe4\xb8\x9a\xe8\xbf\x90\xe5\x8a\xa8': 4, '\xe7\x94\xb7\xe5\xa3\xab\xe6\x89\x8b\xe8\xa2\x8b': 1, '\xe5\xa5\xb3\xe5\xa3\xab\xe6\x89\x8b\xe8\xa2\x8b': 2, '\xe7\xab\xa5\xe8\xa3\x85\xef\xbc\x88\xe4\xb8\xad\xe5\xa4\xa7\xe7\xab\xa5)': 3,

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值