![bb74a6578ccdd6b34fa6a9d21a095a15.png](https://i-blog.csdnimg.cn/blog_migrate/053374dd58778272570a691dd5a3b5aa.jpeg)
1 项目背景
由于投放的广告渠道比较多,需要对其做广告效果分析以实现有针对性的广告效果测量和优化工作。通过数据分析将广告分类并找出其重点特征,为接下来的业务讨论和数据分析提供支持。
2 主要技术
数据预处理:数据标准化MinMaxScaler、字符串分类转整数型分类DictVectorizer
数据建模:KMeans聚类、平均轮廓系数metrics.silhouette_score
数据可视化:matplotlib雷达图
3 字段解释
![1d21593b21ca17778c780fcda0cf4f63.png](https://i-blog.csdnimg.cn/blog_migrate/8f6d6d30786e670df9040d4dfe8ed051.png)
原始数据共889条记录,包含13个字段
渠道代号:渠道的唯一代号
日均UV:平均每天独立访客数
平均注册率:日均注册用户数/平均每天访问量
平均搜索量:平均每个访问的搜索次数
访问深度:总页面浏览量/平均每天的访问量
平均停留时间:总停留时间/平均每天访问量
订单转化率:总订单数/平均每天访问量
投放总时间:每个广告渠道在站外投放的天数
素材类型:广告素材的类型,包括jpg、gif、swf、sp
广告类型:广告投放类型,包括banner,tips,横幅等
合作方式:广告合作方式,包括ROI、CPC、CPM、CPD等
广告尺寸:每个广告投放的尺寸大小
广告卖点:广告素材上的主要卖点,包括打折、满减、直降等
4、建模分析
4.1 导入库
![cf959ca8b07e49f540adb360353d4e5a.png](https://i-blog.csdnimg.cn/blog_migrate/26d8c8c4cce7ac4f20c8b0f81d8ab599.png)
主要用到的库包括:
DictVectorizer:用于将字符串分类转换为整数型分类
MinMaxScaler:数据标准化库
KMeans:K均值聚类算法模块
metrics:sklearn效果评估模块
matplotlib.pyplot:数据可视化模块
4.2 读取数据
![e5a3a466176b53158bf7891367bb9628.png](https://i-blog.csdnimg.cn/blog_migrate/b8524d55058d28a94bbfdc82ec7ec061.png)
4.3 查看数据
![4f65ebdafc1edf3190b77c91c4356d98.png](https://i-blog.csdnimg.cn/blog_migrate/5b2e3f84174ee4b56d098b96a802f882.png)
数据类型为float64和object两种,接下来查看是否包含缺失值。
![8eb7111b826e523d8dff8cf123d673a0.png](https://i-blog.csdnimg.cn/blog_migrate/87257a54380a9ba62e609c9990c59cad.png)
“平均停留时间”字段有2个缺失值,需要进行替换。接下来看看字段的描述性统计分析。
![2aad58d705d069af07c37d6fad6f49c0.png](https://i-blog.csdnimg.cn/blog_migrate/161e164f7f06eb7ffc6b90354b68b9c0.png)
从表中可以看出,日均UV的波动性很大,说明不同渠道带来的日均UV差异明显。
平均停留时间的有效数据为887条,其余为889条,缺少2条数据。
平均注册率、平均搜索量以及订单转化率数值很小,后续聚类分析前需要进行数据标准化操作。
![8b1fd4b833ff1a787bddd7b0eb5c05f6.png](https://i-blog.csdnimg.cn/blog_migrate/3aed06ba97feb6127dd34bfccab77e12.png)
相关性分析发现平均停留时间与访问深度的相关系数为0.72,这两个指标具有较高的相关性,而其他特征之间的相关性不明显。
4.4 数据预处理
首先将“平均停留时间”中的缺失值替换为均值。
然后将字符串分类转换为整数分类,字符串类型字段包括“素材类型”、“广告类型”、“合作方式”、“广告尺寸”、“广告卖点”5个字段,共889个个案。
![cbce9a4062963d3a575a6339466e2989.png](https://i-blog.csdnimg.cn/blog_migrate/9f8a7414497bd36b3001828b5b531fe3.png)
创建唯一值列表,找出每个字段的唯一值。
![3fa91a3e66f927554c052251fb5f30b1.png](https://i-blog.csdnimg.cn/blog_migrate/8176e4ea6e4c078a0b32bbc80230504c.png)
唯一值列表如图所示:
![4d4e8072e0320e257abae00b69112e85.png](https://i-blog.csdnimg.cn/blog_migrate/3d06ebd672591d4aeeb3a2aacd15e5e6.png)
创建列表用于存放每个个案在唯一值列表中的索引
![fb5a193333774254817fe4830e46adca.png](https://i-blog.csdnimg.cn/blog_migrate/8130c65700ba0cc2827c8e6687c68d00.png)
结果如图所示:
![9bde9451390c9969736f7e120168c02f.png](https://i-blog.csdnimg.cn/blog_migrate/594619086feebf57c4a7d7f936d1687e.png)
接下来要把字典数据转换为整数数值,建立DictVectorizer模型将字典转换为整数数据,结果如图所示:
![210406042a5aae8cb8c1b5e7feb52303.png](https://i-blog.csdnimg.cn/blog_migrate/a4349178140338281f7871642b378df7.png)
然后是将前面数值型字段需要进行数据标准化,包括日均UV、平均注册率、平均搜索量、访问深度、平均停留时间、订单转化率、投放总时间共7个字段。
![42096f04270017d95dd792e178f7fd33.png](https://i-blog.csdnimg.cn/blog_migrate/6e2426f4225e308fc11330a3ebad4c23.png)
利用MinMaxScaler模型进行标准化处理,处理结果如图所示
![0ba23228c56e55d759b2e7ad6f0adef7.png](https://i-blog.csdnimg.cn/blog_migrate/8282afc612f694ad222bc2103c126e03.png)
然后将标准化和数值化的数组合并,如图所示
![99ba7368422053c0f3fd72cfe01ccfa5.png](https://i-blog.csdnimg.cn/blog_migrate/d29b61626415281d3285180c65c3fb51.png)
4.5 数据建模
通过平均轮廓系数来检验KMeans聚类模型的K值是否为最佳,平均轮廓系数越大表示类内距离越小,类间距离越大,K值更好。建模过程如图所示:
![284ddc24c299733a03afda1b11cd396d.png](https://i-blog.csdnimg.cn/blog_migrate/df76e2ad881eef57ea5d4e58e5619bb0.png)
通过平均轮廓系数检验,聚类K=4时,得分0.5697为最大值,因此4为最佳K值。
4.6 结果分析
整合原始数据与聚类标签,结果如图所示:
![e35ae4aa6e7830be0c03028eff1ae529.png](https://i-blog.csdnimg.cn/blog_migrate/1344d915a5f742b5e30bf93ee7bff98d.png)
统计各个聚类类别的样本量及样本占比。
![b822ccef2623cc46d0f0c7a131720ff4.png](https://i-blog.csdnimg.cn/blog_migrate/ae0a3b2d7ef8f77276f2c30ac1132a80.png)
聚类类别最大的样本量为索引为0的类别,占总样本46%,最小为索引为2的类别,占总样本3%。
各聚类类别的描述性统计分析。
![ba1f12be3b930e8a1d63ad3c60f063a4.png](https://i-blog.csdnimg.cn/blog_migrate/3ffc3ee9202cedbd8150773fadc9ab3d.png)
这样,cluster_features里就存放了每个类别的描述性统计信息,将其保存到DataFrame中,如图所示:
![bc556f55ee3185336359187c4fb17088.png](https://i-blog.csdnimg.cn/blog_migrate/a91a67c06e4b8bce1a1be2554cf55a15.png)
再将所有数据合并到一起
![dd22752c0b018b574210acc2cedb97db.png](https://i-blog.csdnimg.cn/blog_migrate/0c4485447bdc916cdc3d9f5f98ec27f4.png)
各类别特征如图所示,聚类1(索引值0)的占比最大,其次是聚类2(索引值1),聚类3(索引值3),最少占比是聚类3(索引值2),为了更直观的比较各聚类类别在不同特征中的表现,通过雷达图进行对比展示。
4.7 数据可视化
选择要在雷达图中展示的数值型字段,包括日均UV、平均注册率、平均搜索量、访问深度、平均停留时间及订单转化率,并将数据标准化处理,结果如下。
![f0deb7b773593d904f8405f95736800b.png](https://i-blog.csdnimg.cn/blog_migrate/20c63fb7033ddafcdab52e8f46952664.png)
绘制雷达图:
![3b1d22274b475cea245c5254eacd665b.png](https://i-blog.csdnimg.cn/blog_migrate/2ab6ab6281495db01d14035791aee497.png)
结果如图所示:
![5dcad003ff7959bb43ac5377b4d9c1f1.png](https://i-blog.csdnimg.cn/blog_migrate/14c8970003c75b8f1fe1dbd73a8b5328.png)
雷达图中可以很直观的看出各个不同聚类广告在各方面的表现的对比。
聚类1(索引为0):各方面的表现都不是很明显,广告的效果不是很理想,但却占据了广告投放的渠道的46%,需要同业务方讨论今后的取舍问题。
聚类2(索引为1):这类广告在平均搜索量、平均停留时间和订单转化率几个方面表现较好,但在日均UV和注册转化率方面存在短板,这类广告渠道也占据了很大一部分,为33%的占比。
聚类3(索引为2):这类广告的表现在平均停留时间、订单转化率、日均UV、访问深度以及平均搜索量5个方面的表现都是最好的,但却仅占3%的广告投放占比,这部分渠道属于少量的“精英”类渠道。
聚类4(索引为3):这类渠道跟其他几类渠道有很明显特征区别,其在平均注册率上的变现非常突出,其他方面的变现平平,可以认为这类渠道属于“拉新”的重要渠道。
5 结论应用
对于聚类分析得到的四类广告渠道,可以在不同的场景时选择。
聚类1广告渠道在资金不足或优化广告结构的时候可以不采用。
聚类2和聚类3的广告渠道是提升流量质量的重要渠道。聚类3广告渠道由于在各方面都变现很好,应该考虑优先投放,结合聚类2广告渠道可以显著提升订单转化率、平均停留时间、访问深度、平均搜索量和日均UV。广告的宣传点以打折、直降为重点。
聚类4广告渠道是重要的拉新渠道能显著提升平均注册率,带来新客户,可以作为每次大型促销活动的引流渠道。