kmeans设置中心_数据科学实战:KMeans 广告效果聚类分析

关注上方“Python数据科学”,选择星标,

关键时间,第一时间送达!

☞500g+超全学习资源免费领取

17399865069bacfb6424fc7e18b2685a.png

本案例的业务场景: 假如你们公司投放广告的渠道很多,每个渠道的客户性质也可能不同,比如在优酷视频投广告和今日头条投放广告,效果可能会有差异。现在需要对广告效果分析实现有针对性的广告效果测量和优化工作。 本案例,通过各类广告渠道90天内额日均UV,平均注册率、平均搜索率、访问深度、平均停留时长、订单转化率、投放时间、素材类型、广告类型、合作方式、广告尺寸和广告卖点等特征,将渠道分类,找出每类渠道的重点特征,为加下来的业务讨论和数据分析提供支持。 目  录 1、应用技术介绍 2、数据介绍 3、导入库,加载数据 4、数据审查 5、数据处理 6、建立模型 7、聚类结果特征分析与展示 8、数据结论 一、应用技术介绍 01、数据预处理 a、数据标准化 数据无量纲化,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或者量级的指标能够进行和加权. 比如身高与体重,房子数量与收入等。 b、独热编码OneHotEncoder 对于字符串类别类型的变量,不能直接带入模型,需要转化为数值型。 02、K-Means聚类算法 聚类算法: 属于无监督机器学习算法,通过计算样本项之间的相似度(也称为样本间的距离),按照数据内部存在的数据特征将数据集划分为多个不同的类别,使类别内的数据比较相似,类别之间的数据相似度比较小。 闵可夫斯基距离(Minkowski): 7da6a7ea9e5f535f88d5e4a7481875f0.png 当p为1的时候是曼哈顿距离(Manhattan) 当p为2的时候是欧式距离(Euclidean) 当p为无穷大的时候是切比雪夫距离(Chebyshev) cf6d72e290a718fa987d352746444e7f.png 算法思想(步骤): a、选择初始化的k个类别中心a1,a2,...ak; b、计算每个样本Xi到类别中心aj的距离,设定最近的类别j c、将每个类别的中心点aj,替换为隶属该类别的所有样本的均值,作为新的质心。 d、重复上面两步操作,直到达到某个中止条件 中止条件为:组内最小平方误差MSE最小,或者达到迭代次数,或者簇中心点不再变化。 b4a41d107f6f3d4393f703d30a8717fc.png 03、聚类评估——轮廓系数 如何基于最优的数据尺度确定K-Means算法中的K值? 轮廓系数的思想: 最佳的聚类类别划分从数据特征上看,类内距离最小化且类别间距离最大化,直观的理解就是“物以类聚”:同类的“聚集”“抱团”,不同类的离得远。轮廓系数通过枚举每个K计算平均轮廓系数得到最佳值。 3b35b49cce6a609d325d99ae3dad5f7a.png a(i) :i向量到同一簇内其他点不相似程度的平均值 b(i) :i向量到其他簇的平均不相似程度的最小值 轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优。 将所有点的轮廓系数求平均,就是该聚类结果总的轮廓系数。

二、数据介绍

01 数据维度概况 除了渠道唯一标识,共12个维度,889行,有缺失值,有异常值。 02 数据13个维度介绍 1、渠道代号:渠道唯一标识 2、日均UV:每天的独立访问量 3、平均注册率=日均注册用户数/平均每日访问量 4、平均搜索量:每个访问的搜索量 5、访问深度:总页面浏览量/平均每天的访问量 6、平均停留时长=总停留时长/平均每天的访问量 7、订单转化率=总订单数量/平均每天的访客量 8、投放时间:每个广告在外投放的天数 9、素材类型:'jpg' 'swf' 'gif' 'sp' 10、广告类型:banner、tips、不确定、横幅、暂停 11、合作方式:'roi' 'cpc' 'cpm' 'cpd' 12、广告尺寸:'140*40' '308*388' '450*300' '600*90' '480*360' '960*126' '900*120' '390*270' 13、广告卖点:打折、满减、满赠、秒杀、直降、满返

三、导入库,加载数据

import pandas as pdimport numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltfrom  sklearn.preprocessing import  MinMaxScaler,OneHotEncoderfrom sklearn.metrics import silhouette_score  # 导入轮廓系数指标from sklearn.cluster import KMeans  # KMeans模块
%matplotlib inline## 设置属性防止中文乱码
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams[


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部