• 大作业


    1、聚类-Kmeans算法应用

    观察学习与生活中可以用K均值解决的问题,从数据-模型训练-测试-预测完整地完成一个应用案例。

    问题背景:某国产美妆公司试图开拓女大学生市场,苦于无法有效筛选出有效目标用户。根据向目标年龄段发放调查问卷后,获得了一定数据进行分类筛选。(*合计有效数据726条)

    数据内容:用户年龄、用户每月可支配费用、用户每月必要开支、用户每月在美妆护肤上的开支(100以下取100,不满百向上取整至百,数值皆为大致范围),是否对品牌有一定要求,是否有使用新产品意愿,对国产品牌的接受程度(以1-5分为标准)

    数据预览:

    (1)读取数据,数据处理。

    #1.读取处理数据
    data=pd.read_excel('./data/test.xlsx')  #进行数读取
    print(data.isnull().any())              #查看哪一列中有空值
    data=data.drop("序号",axis=1)           #删除序号列
    print(data)

       

    (2)建立模型,并生成用户分类表,写入文件中。

    #2.构建模型
    model=KMeans(n_clusters=5)    #构建模型,对用户进行5类分类
    model.fit(data)               #模型匹配训练
    pre=model.predict(data)       #进行分类
    print("分类结果:",pre)        #查看分类结果
    print("模型的中心为:",model.cluster_centers_)  #查看聚类中心
    
    a = pd.Series(['客户类1','客户类2','客户类3','客户类4','客户类5']) #创建一个序列s
    end = pd.concat([a,pd.Series(model.labels_).value_counts(),pd.DataFrame(model.cluster_centers_)], axis = 1)
    ##统计各个类别的个数,并和找出聚类中心,进行表格连接,得到聚类中心对应的类别下的数目
    end.columns =['客户分类'] +['分类个数']+ list(data.columns)     #重命名分类表格表头
    end.to_csv("./data/客户分类表格.csv",encoding='gbk')     #将表格写入文件中,方便分析

     

     (3)绘制用户分类图

    *因数据做了取整,所以导致消费习惯用户相同的客户较多。故这里对点的透明度做了调整,颜色越深的点证明改点消费习惯相同的客户越多。

    #3.分类可视化
    #散点作图以直观查看用户分类
    mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    plt.scatter(data.values[:,1],data.values[:,3],c=pre,s=25,alpha=0.2)     #画出用户分类点
    plt.scatter(model.cluster_centers_[:,1], model.cluster_centers_[:,3], s=50,color='red')    #画出聚类中心
    plt.title("某化妆品公司客户分类")
    plt.xlabel("可支配收入")
    plt.ylabel("美妆护肤开支")
    plt.show()

    (4)客户分类预测

    test=pd.DataFrame([[21,1200,800,300,3,3,3,2],[20,2000,800,1500,4,5,3,4],[19,1200,800,400,1,2,2,1]])#输入三组数据查看属于哪一类顾客
    print("客户预测分类结果为:",model.predict(test))#输出分类结果

    问题结果:进行kmeans分类后,可以看出一部分用户可支配收入高,在美妆方便也愿意投入一定的金钱。(结论皆同比)

    用户分为5类,分类为第1类的客户,拥有中等可支配收入,必要开支少,愿在美妆上护肤上投入较高开支,对大牌要求为中等,使用新产品的意愿高,对国产品牌的接受程度也较高;

    分类为第2类的用户,可支配收入少,必要开支中等,在美妆护肤上的投入少,护肤的专注程度低,对使用新产品的意向为中等,对国产品牌缺乏信心;

    分类为第3类的用户,可支配收入高,必要开支较少,美妆护肤上的投入高,对品牌也有较高的要求,对使用新产品和使用国产品牌的想法较低;

    分类为第4类的用户,可支配收入较高,必要开支高,在美妆上愿意投入中等开支,对品牌有着高要求,使用新产品的意向也较高,对国产品牌的接受程度也最高;

    分类为第5类的用户,用有较少的可支配收入,必要开支较高,对美妆的开支较少,对护肤的执着程度和品牌要求也较低,不愿意使用新产品,对国牌接受程度为中等;

    问题总结:综上所述,公司可以重点向客户分为类为第一类的客户可以发展为重点客户,着重向其推荐高端产品;次重点客户为第4类客户,可以多向其推荐中高端线产品;剩余3类的客户潜力较低,但也可以向其发放使用产品增强他们的用户潜力。

    2、分类-朴素贝叶斯-中文文本分类

    0.下载数据集

    • 数据集:THUCNews中文文本数据集 http://thuctc.thunlp.org/       按学号未位下载相应数据集。0369:时政、体育、星座、游戏、娱乐

    1.对文本进行读取、分词处理,并存储进入content列表中。

    • 文本预处理:遍历每个个文件夹下的每个文本文件。各种获取文件,写文件。除去噪声,如格式转换,去掉符号,整体规范化。
    • jieba分词:下载、导入词库;增加专业词汇;维护自定义词库;可以用jieba.add_word('word')增加词,用jieba.load_userdict('wordDict.txt')导入词库。使用jieba分词,将中文文本进行切割。中文分词就是将一句话拆分为各个词语,因为中文分词在不同的语境中歧义较大,所以分词极其重要。
    • 去掉停用词:维护停用词表——停用词表hit_stopwords.txt

    2.数据划分—训练集和测试集数据划分

    3.对处理之后的文本开始用TF-IDF的特征矩阵

    4.贝叶斯预测种类

    5.模型评价

  • 相关阅读:
    python 接口自动化测试搭建钉钉环境
    接口测试流程梳理
    兼容性测试
    软件测试流程
    软件测试---黑盒测试的测试用例的设计方法
    软件基础之-----测试的方法
    基于Selenium2+Java的UI自动化(8)- 显式等待和隐式等待
    基于Selenium2+Java的UI自动化(6)-操作Alert、confirm、prompt弹出框
    基于Selenium2+Java的UI自动化(5)
    基于Selenium2+Java的UI自动化(4)
  • 原文地址:https://www.cnblogs.com/HvYan/p/12958003.html
Copyright © 2020-2023  润新知