美文网首页
Airbnb客户分群——Kmeans简单运用

Airbnb客户分群——Kmeans简单运用

作者: Brian_mingzhi | 来源:发表于2020-03-20 22:59 被阅读0次

    问题描述
    根据airbnb用户信息对客户进行分群
    数据字段

    image.png

    一、数据准备

    1.引入数据

    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    %matplotlib inline
    airbnb=pd.read_csv(airbnb_kmeans.csv)
    airbnb.describe()
    airbnb.info()
    

    1.1发现age的异常值有“2岁”和“2014岁”

    age.png
    1.2data_account和data_first为object型 且gender为字符型变量
    image.png

    2.异常值处理

    2.1处理年龄

    #筛选出年龄大于5岁且小于100岁的用户
    airbnb = airbnb[airbnb['age']>5]
    airbnb = airbnb[airbnb['age']<100]
    
    

    2.2处理时间变量

    #将object转化为datetime变量
    airbnb['date_account_created']=pd.to_datetime(airbnb['date_account_created'])
    airbnb['date_first_booking']=pd.to_datetime(airbnb['date_first_booking'])
    
    #创建新变量:“用户注册了多少年”
    airbnb['year_date_account_created']=airbnb['date_account_created'].map(lambda x:2020-x.year)
    #创建新变量:“距离用户第一次订单多少年”
    airbnb['year_date_first_booking']=airbnb['date_first_booking'].map(lambda x:2020-x.year)
    

    2.3处理gender字符型

    airbnb['gender']=pd.get_dummies(airbnb['gender'])
    

    二、建模

    1.利用肘方法看分多少类

    import sklearn.cluster
    import matplotlib.pyplot as plt 
    %matplotlib inline
    
    kmeans_score = [] #存放模型拟合后的inertia
    for i in range(1,11):
        model = KMeans(n_clusters=i,random_state=10)
        model.fit(airbnb_5)
        kmeans_score.append(model.inertia_) #inertia表示各点到中心之和
    plt.plot(range(1,11),kmeans_score)
    plt.xlabel('clusters')
    plt.ylabel('interia')
    plt.show()#用肘方法查看最合适的类数
    

    可见n=3时,出现拐点,所以分类数定为3

    image.png

    2.分3类

    
    model = KMeans(n_clusters=3,random_state=10)#注意KMeans两个大写字母
    model.fit(airbnb_5)
    result = model.predict(airbnb_5)
    airbnb['K-means'] = result #创建“类别”列
    

    3.查看分类后各中心点位置 并且解读

    #查看分类后的各中心
    model.cluster_centers_
    
    分类中心.png
    解读:
    1.第一类为安卓使用者偏度,喜好通过PC端下单
    2.第二类为通过手机移动网页下单
    3.第三类为“果粉”,特征为很少使用PC端网页下单
    image.png

    相关文章

      网友评论

          本文标题:Airbnb客户分群——Kmeans简单运用

          本文链接:https://www.haomeiwen.com/subject/kjqsyhtx.html