K-Means聚类分析广告投放效果的改进(数据标准化、最佳K值的确定)

业务场景:
甲公司投放广告的渠道很多,每个渠道的客户性质也可能不同,比如在优酷视频投广告和今日头条投放广告,效果可能会有差异。现在需要对广告效果分析实现有针对性的广告效果测量和优化工作。

1 导入相关库及数据

import pandas as pd 
import numpy as np 
import matplotlib as mpl 
import matplotlib.pyplot as plt 
from sklearn.preprocessing import MinMaxScaler,OneHotEncoder 
from sklearn.metrics import silhouette_score # 导入轮廓系数指标
from sklearn.cluster import KMeans # KMeans模块
%matplotlib inline
#忽略警告
import warnings 
warnings.filterwarnings("ignore")
# 设置图像细节
plt.rcParams["font.sans-serif"] = "SimHei"   #将pyplot字体转化成中文
plt.rcParams['font.size'] = 12  # 设置字体大小
plt.rcParams['axes.unicode_minus'] = False # 设置正常显示负号
df_1 = pd.read_csv(r"C:\Users\A\Desktop\python\上课用\数据挖掘案例\ad_performance (1).csv")

2.数据探索与清洗

#2.1查看数据概览、前五项、类型
df_1.info()
print(df_1.head())
type(df_1)
print(df_1.describe().round(2))

(1)数据共889行记录,12个维度(第一列为序号),数据量较小,可以用聚类分析。

(2)日均UV到投放时间为数值型数据,后5项为分类型数据。

日均UV的数据波动非常大,说明了不同渠道间的特征差异非常明显。

 (3)数值型数据度量单位不同,需要做标准化处理

平均注册率、平均搜索量、订单转化率的多个统计量(例如最小值、25%分位数等)都为0,需要关注其原因:打印输出过程中仅保留了2位小数,而这几个统计量的数据本身就非常小。

#2.2缺失值处理
#(1)查看缺失值
print(df_1.isnull().any(axis=0))
#(2)计算 DataFrame 中每一列的缺失值数量
df_1.isnull().sum()

 平均停留时间存在2项缺失值,聚类分析对缺失值敏感,需要做进一步处理

#(3)缺失值可视化
import missingno as msno
msno.bar(df_1)#查看数据集数据完整性

此处用缺失值可视化工具查看缺失值分布情况(本案例效果不明显)

#(4)提取缺失值信息
df_1[df_1.isnull().values==True]

#(5)缺失值填充&删除
# 相关性分析
df_1.corr().round(2)
import seaborn as sns 
corr = df_1.corr().round(2)
sns.heatmap(corr,cmap='Reds',annot = True)

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值