赞
踩
聚类算法属于无监督学习的一种,而其中KMeans算法是比较常用的聚类算法。
主要思想是:
1、在给定K值和K个初始类簇中心点的情况下,把每个点(亦即数据记录)分到离其最近的类簇中心点所代表的类簇中。
2、 所有点分配完毕之后,根据一个类簇内的所有点重新计算该类簇的中心点(取平均值)。
3、再迭代的进行分配点和更新类簇中心点的步骤,直至类簇中心点的变化很小,或者达到指定的迭代次数。
本文数据量:62988,
共有44个客户属性,其中包含了会员卡号、入会时间、性别、年龄、会员卡级别、在观测窗口内的飞行公里数、飞行时间等
拿到数据集,先进行整体上的观察
import pandas as pd
import numpy as np
df = pd.read_csv( 'air_data.csv', encoding = 'utf-8') #读取原始数据,指定UTF-8编码(需要用文本编辑器将数据装换为UTF-8编码)
print(df.shape)
print(df.info)
看看前5行
df.head()
简单加工一下44属性名称
进行空值,最小,最大值的计算
ex = df.describe(percentiles = [], include = 'all').T #包括对数据的基本描述,percentiles参数是指定计算多少的分位数表(如1/4分位数、中位数等);T是转置,转置后更方便查阅
ex['null'] = len(df)- ex['count'] #describe()函数自动计算非空值数,需要手动计算空值数
ex = ex[['null', 'max', 'min']]
ex.columns = [u'空值数', u'最大值', u'最小值'] #表头重命名
ex
发现数据集存在票价为空,总飞行公里数大于0的脏数据
具体处理方法如下:
删去票价为0的数据 及票价为0,折扣率不为0,总飞行公里数大于0的记录
df= df[df['SUM_YR_1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。