通过Ti-One机器学习平台玩转2020腾讯广告算法大赛:数据预处理(三)

简介: 通过Ti-One机器学习平台玩转2020腾讯广告算法大赛:数据预处理(三)

简单分析

已经有了pandas的dataframe,下面就可以对数据进行简单的分析了

比如:

click_all.info()

image.png

查看各列的唯一数总数

for col in click_all.columns:

   print(col,click_all[col].nunique())

image.png

各列的汇总

click_all.describe()

image.png

看到统计信息里面不包含product_id 和industry,说明里面可能有字符串信息,肉眼观察发现里面有一些数据被标记为\N,我这里处理的方式比较简单粗暴,就是使用0进行替换

click_all["product_id"]=click_all['product_id'].apply(lambda x : 0 if x == '\\N' else x)

click_all["industry"]=click_all['industry'].apply(lambda x : 0 if x == '\\N' else x)

替换完成后再整理一下数据类型

click_all["product_id"]=click_all["product_id"].astype(np.int32)

click_all["industry"]=click_all["industry"].astype(np.int32)

click_all = reduce_mem_usage(click_all)

click_all.info()

image.png

这样就可以了,虽然还有特征工程要做,但是这样的数据已经达到了输入到模型中进行训练的最基本的要求了。

pandas还有一个强大的功能就是可以建立直方图帮我们观察数据的分布

cols=["creative_id", "click_times", "ad_id",

                   "product_id", "advertiser_id", "industry", ]

for col in cols:

   if col=="type":

       continue

   click_all.hist(col)

这条语句会显示所有列的直方图,我们以一个为例:

image.png

点击次数中我们看到大部分数据都分布在25以内,但是他的最大值是185。

我们继续使用箱型图印证对于click_times的观点,使用箱型图可以查看

click_all.boxplot("click_times",vert=False, grid = True)

image.png

看到这个图对数据分析有过理解的小伙伴一定就知道了,我们可以看一下

# 上四分位数

cl=click_all["click_times"]

q3 = cl.quantile(q=0.75)

#下四分位数

q1 = cl.quantile(q=0.25)

print(q3,q1)

image.png

上四分位数和下四分位数都是1,我们根本就不需要查看异常值了,这就说明都会被算作异常值

#可以试试这个代码,看看怎么判断

cl01 = cl[(cl>q3+1.5*iqr) | (cl<q1-1.5*iqr)]

看看这些值到底是什么样的

click_all[click_all["click_times"]>100]

image.png

大于100的click大部分都是test数据集的,这里肯定是一个坑。

这里我们指定了click_times,如果不指定pandas会绘制所有列的箱型图,但是由于数据级数不一样,所以合并看意义不大。

最后我们来看一下对于每个用户,每天都有多少次点击:

user=click_all.groupby(["time","user_id"])['click_times'].count().reset_index(name="count")

user[user["count"]>2000]

还有每天点击大于2000的用户

image.png

user.boxplot("count",vert=False, grid = True)

image.png

# 上四分位数

cl=user["count"]

q3 = cl.quantile(q=0.75)

#下四分位数

q1 = cl.quantile(q=0.25)

print(q3,q1)

iqr = q3-q1

print("上四分位数:{}\n下四分位数:{}\n四分位差{}".format(q3,q1,iqr))

cl01 = cl[(cl>q3+1.5*iqr) | (cl<q1-1.5*iqr)]

print("异常值:\n{}".format(cl))

异常值我们先不管,这里能明显的看出,肯定有一部分数据是垃圾数据,或者说一部分用户是干扰用户,可以再深入研究下将其删除

image.png

本篇文章就先讲这么多吧,最后祝大家比赛取得好成绩

目录
相关文章
|
1天前
|
机器学习/深度学习 存储 算法
【机器学习】深入探索机器学习:线性回归算法的原理与应用
【机器学习】深入探索机器学习:线性回归算法的原理与应用
|
2天前
|
机器学习/深度学习 监控 算法
支付宝商业化广告算法优化
支付宝商业化广告算法优化
|
3天前
|
机器学习/深度学习 数据采集 算法
机器学习入门:算法与数据的探索之旅
【6月更文挑战第13天】本文介绍了机器学习的基础,包括算法和数据处理的重要性。机器学习算法分为监督学习(如线性回归、决策树)、非监督学习(如聚类、降维)和强化学习。数据处理涉及数据清洗、特征工程、数据分割及标准化,是保证模型性能的关键。对于初学者,建议学习基础数学、动手实践、阅读经典资料和参与在线课程与社区讨论。
|
4天前
|
机器学习/深度学习 人工智能 算法
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
```markdown # ROC曲线与AUC详解:评估分类模型利器 本文深入浅出解释ROC曲线和AUC,通过实例和代码帮助理解其在模型评估中的重要性,旨在提升对分类模型性能的理解和应用。 ```
41 13
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
|
6天前
|
机器学习/深度学习 算法 大数据
【机器学习】朴素贝叶斯算法及其应用探索
在机器学习的广阔领域中,朴素贝叶斯分类器以其实现简单、计算高效和解释性强等特点,成为了一颗璀璨的明星。尽管名字中带有“朴素”二字,它在文本分类、垃圾邮件过滤、情感分析等多个领域展现出了不凡的效果。本文将深入浅出地介绍朴素贝叶斯的基本原理、数学推导、优缺点以及实际应用案例,旨在为读者构建一个全面而深刻的理解框架。
10 1
|
6天前
|
机器学习/深度学习 算法 TensorFlow
算法金 | 只需十四步:从零开始掌握Python机器学习(附资源)
```markdown ## 摘要 全网同名「算法金」的作者分享了一篇针对Python机器学习入门的教程。教程旨在帮助零基础学习者掌握Python和机器学习,利用免费资源成为实践者。内容分为基础篇和进阶篇,覆盖Python基础、机器学习概念、数据预处理、科学计算库(如NumPy、Pandas和Matplotlib)以及深度学习(TensorFlow、Keras)。此外,还包括进阶算法如SVM、随机森林和神经网络。教程还强调了实践和理解最新趋势的重要性。
13 0
算法金 | 只需十四步:从零开始掌握Python机器学习(附资源)
|
7天前
|
机器学习/深度学习 算法 数据挖掘
机器学习——DBSCAN 聚类算法
【6月更文挑战第8天】DBSCAN是一种基于密度的无监督聚类算法,能处理不规则形状的簇和噪声数据,无需预设簇数量。其优点包括自动发现簇结构和对噪声的鲁棒性。示例代码展示了其基本用法。然而,DBSCAN对参数选择敏感,计算效率受大规模数据影响。为改善这些问题,研究方向包括参数自适应和并行化实现。DBSCAN在图像分析、数据分析等领域有广泛应用,通过持续改进,将在未来保持重要地位。
29 2
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
炸裂!PAI-DSW 和 Free Prompt Editing 图像编辑算法,成就了超神的个人 AIGC 绘图小助理!
【6月更文挑战第11天】PAI-DSW 和 Free Prompt Editing 算法引领图像编辑革命,创造出个人AIGC绘图小助理。PAI-DSW擅长深度图像处理,通过复杂模型和深度学习精准编辑;Free Prompt Editing则允许用户以文本描述编辑图像,拓展编辑创意。结合两者,小助理能根据用户需求生成惊艳图像。简单Python代码示例展示了其魅力,打破传统编辑局限,为专业人士和普通用户提供创新工具,开启图像创作新篇章。未来,它将继续进化,带来更多精彩作品和体验。
|
17天前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
185 4
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 吴恩达:机器学习的六个核心算法!
吴恩达教授在《The Batch》周报中介绍了机器学习领域的六个基础算法:线性回归、逻辑回归、梯度下降、神经网络、决策树和k均值聚类。这些算法是现代AI的基石,涵盖了从简单的统计建模到复杂的深度学习。线性回归用于连续变量预测,逻辑回归用于二分类,梯度下降用于优化模型参数,神经网络处理非线性关系,决策树提供直观的分类规则,而k均值聚类则用于无监督学习中的数据分组。这些算法各有优缺点,广泛应用于经济学、金融、医学、市场营销等多个领域。通过不断学习和实践,我们可以更好地掌握这些工具,发掘智能的乐趣。
33 1
算法金 | 吴恩达:机器学习的六个核心算法!