4.Python数据分析项目之广告点击转化率预测

16 篇文章 11 订阅
订阅专栏
该文介绍了广告点击后激活概率预测的流程,包括数据预处理、缺失值填充、特征工程、模型建立(如逻辑回归、随机森林)及评估方法。此外,还提供了基于AD统计和AD+LR的基线模型,并进行了数据分析,如每日点击和转化率的统计。
摘要由CSDN通过智能技术生成

1.总结

流程具体操作
基本查看查看缺失值(可以用直接查看方式isnull、图像查看方式查看缺失值missingno)、查看数值类型特征与非数值类型特征、一次性绘制所有特征的分布图像
预处理缺失值处理(填充)拆分数据(获取有需要的值) 、统一数据格式、特征工程(特征编码、0/1字符转换、自定义) 、特征衍生、降维(特征相关性、PCA降维)
数据分析groupby分组求最值数据、seaborn可视化
预测拆分数据集、建立模型(RandomForestRegressor、LogisticRegression、GradientBoostingRegressor、RandomForest)、训练模型、预测、评估模型(ROC曲线、MSE、MAE、RMSE、R2)、调参(GridSearchCV)

数量查看:条形图
占比查看:饼图
数据分区分布查看:概率密度函数图
查看相关关系:条形图、热力图
分布分析:分类直方图(countplot)、分布图-带有趋势线的直方图(distplot)

2.项目背景

在这里插入图片描述

广告投放效果通常通过曝光、点击和转化各环节来衡量,大多数广告系统受广告效果数据回流的限制只能通过曝光或点击作为投放效果的衡量标准开展优化。
本项目以腾讯移动App广告为研究对象,预测App广告点击后被激活的概率:pCVR=P(conversion=1 | Ad,User,Context),即给定广告、用户和上下文情况下广告被点击后发生激活的概率。

3.数据解释

  • 训练数据
    从腾讯社交广告系统中某一连续两周的日志中按照推广中的App和用户维度随机采样。每一条训练样本即为一条广告点击日志(点击时间用clickTime表示),样本label取值0或1,其中0表示点击后没有发生转化,1表示点击后有发生转化,如果label为1,还会提供转化回流时间(conversionTime)。
  • 转化回流时间
    App 的激活定义为用户下载后启动了该App,即发生激活行为。从用户点击广告到广告系统得知用户激活了App(如果有),通常会有较长的时间间隔回流时间表示了广告主把App激活数据上报给广告系统的时间,回流时间超过5天的数据会被系统忽略。 值得注意的是,训练数据提供的截止第31天0点的广告日志,因此,对于最后几天的训练数据,某些label=0并不够准确,可能广告系统会在第31天之后得知label实际上为1
  • 特征数据解释
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
特别地,出于数据安全的考虑,对于userID,appID,特征,以及时间字段,我们不提供原始数据,按照如下方式加密处理:
在这里插入图片描述

  • 训练数据文件(train.csv)
    每行代表一个训练样本,各字段之间由逗号分隔,顺序依次为:“label,clickTime,conversionTime,creativeID,userID,positionID,connectionType,telecomsOperator”。当label=0时,conversionTime字段为空字符串。特别的,训练数据时间范围为第17天0点到第31天0点(定义详见下面的“补充说明”)。为了节省存储空间,用户、App、广告和广告位相关信息以独立文件提供(训练数据和测试数据共用),具体如下:
    在这里插入图片描述
    注:若字段取值为0或空字符串均代表未知。(站点集合ID(sitesetID)为0并不表示未知,而是一个特定的站点集合。)
  • 测试数据文件(test.csv)
    从训练数据时段随后1天(即第31天)的广告日志中按照与训练数据同样的采样方式抽取得到,测试数据文件(test.csv)每行代表一个测试样本,各字段之间由逗号分隔,顺序依次为:“instanceID,-1,clickTime,creativeID,userID,positionID,connectionType,telecomsOperator”。其中,instanceID唯一标识一个样本,-1代表label占位使用,表示待预测。

评估方式(逻辑回归损失函数)
通过Logarithmic Loss评估(越小越好),公式如下:
在这里插入图片描述
其中,N是测试样本总数,yi是二值变量,取值0或1,表示第i个样本的label,pi为模型预测第i个样本 label为1的概率。
评估公式的Python代码如下:

import scipy as sp
def logloss(act, pred):
  epsilon = 1e-15
  pred = sp.maximum(epsilon, pred)
  pred = sp.minimum(1-epsilon, pred)
  ll = sum(act*sp.log(pred) +sp.subtract(1,act)*sp.log(sp.subtract(1,pred)))
  ll = ll * -1.0/len(act)
  return ll

4.Baseline(基线版本)模型(基于AD统计)

什么是基线版本

  • 基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础.
  • 先快速建立一个简单的模型 然后在模型的基础上进行优化
    两个基线版本
    本项目实现两个基线版本
  • 基于AD统计的版本——不使用模型,只是简单的根据统计预测
  • AD+LR(逻辑回归)版本

4.1 Baseline模型(AD统计版本)

不使用模型,只是简单的根据统计预测

import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore') # 忽略警告信息

# 1.加载数据
train = pd.read_csv('data/train.csv')
test = pd.read_csv('data/test.csv')
ad = pd.read_csv('data/ad.csv')# 广告数据

# 2.合并数据集
train = pd.merge(train, ad, on='creativeID') # 根据“素材ID”合并train和ad
test = pd.merge(test, ad, on='creativeID') # 根据“素材ID”合并test和ad
y_train = train['label'].values # 获取训练数据集的标签

# 3.统计处理(代替建模)
# 先计算出根据appID分组聚合计算出每种的平均值,再根据appID合并数据表,作为预测值
cvr = train.groupby("appID").apply(lambda df:np.mean(df['label'])).reset_index() 
cvr.columns = ['appID','avg_cvr']

test = pd.merge(test, cvr, how='left', on='appID') # 测试集与cvr左外连接
# 对test中的“avg_cvr”列为空的数据填充
test['avg_cvr'].fillna(np.mean(train['label']),inplace=True)
proba_test = test['avg_cvr'].values # avg_cvr列提取出来,作为预测概率

# 4.保存结果
# 创建dataframe
df = pd.DataFrame({'instanceID':test['instanceID'].values,
                    'proba':proba_test}) 
# 根据instanceID排序
df.sort_values("instanceID", inplace=True)
# 结果保存到CSV文件中
df.to_csv("data/submission_ad.csv", index=False)

合并数据后的train
在这里插入图片描述
合并数据后的test
在这里插入图片描述
预测结果的保存
在这里插入图片描述

4.2Baseline模型(基于AD+LR逻辑回归的版本)

from scipy import sparse
from sklearn.preprocessing import OneHotEncoder # 机器学习中的onehot编码方法
from sklearn.linear_model import LogisticRegression # 逻辑回归

# 1.加载数据
train = pd.read_csv('data/train.csv')
test = pd.read_csv('data/test.csv')
ad = pd.read_csv('data/ad.csv')# 广告数据

# 2.合并数据集
train = pd.merge(train, ad, on='creativeID') # 根据“素材ID”合并train和ad
test = pd.merge(test, ad, on='creativeID') # 根据“素材ID”合并test和ad
y_train = train['label'].values # 获取训练数据集的标签

# 3.特征工程(one-hot编码)
enc = OneHotEncoder()
# 对这些特征进行one-hot编码
feats = ['appID', 'appPlatform']
for i, feat in enumerate(feats):
    # 使用训练数据集的对应特征进行拟合并进行one-hot编码转换
    x_train = enc.fit_transform(train[feat].values.reshape(-1,1))
    # 对测试集直接进行转换(只能是训练集中存在的特征值进行one-hot编码转换)
    x_test = enc.transform(test[feat].values.reshape(-1,1))
    # 如果遍历到第一个特征(“appID特征”)
    if i == 0:
        X_train, X_test = x_train, x_test
    else:
        X_train, X_test = sparse.hstack((X_train, x_train)), sparse.hstack((X_test, x_test))

# 4.建立模型(逻辑回归)
lr = LogisticRegression()
lr.fit(X_train, y_train)
proba_test = lr.predict_proba(X_test)[:,1] #预测概率

# 5.保存结果
# 创建dataframe
df = pd.DataFrame({'instanceID':test['instanceID'].values,
                    'proba':proba_test}) 
# 根据instanceID排序
df.sort_values("instanceID", inplace=True)
# 结果保存到CSV文件中
df.to_csv("data/submission_ad_lr.csv", index=False)

在这里插入图片描述

5.数据分析

提醒:
"点击时间"字段clickTime的格式为DDHHMM,其中DD代表第几天,HH代表小时,MM代表分钟
每天点击行为分析_分析点击日期与每日点击次数

# 该函数实现截取点击时间的前两位(获取第几天)
def ofday(clickTime):
    return int(str(clickTime)[:2])

# 1.加载数据
train = pd.read_csv('data/train.csv')
test = pd.read_csv('data/test.csv')
ad = pd.read_csv('data/ad.csv')# 广告数据
cate = pd.read_csv('data/app_categories.csv') # 种类数据

# 2.合并数据
train = pd.merge(train, ad, on='creativeID', how='left')
train = pd.merge(train, cate, on='appID', how='left')
test = pd.merge(test, ad, on='creativeID', how='left')
test = pd.merge(test, cate, on='appID', how='left')

# 3.提取点击时间字段的前两位(第几天),存储在新列中(click_date为新列)
train['click_date'] = train['clickTime'].apply(ofday)
test['click_date'] = test['clickTime'].apply(ofday)

# 4.绘制条形图展示每日点击次数
# 获取调色板
p = sns.color_palette()
# 获取点击日期出现的次数
click = train.click_date.value_counts()
# 绘制条形图
sns.barplot(click.index, click.values, alpha=0.8, color=p[2])
plt.xlabel("click_date", fontsize=12)
plt.ylabel('click count per day', fontsize=12)
plt.show()

在这里插入图片描述
每天安装数分析

# 安装成功的记录也就是label为1的记录
install = train[train['label']==1].click_date.value_counts()
plt.figure(figsize=(12,4))
sns.barplot(install.index, install.values, alpha=0.8, color=p[1])
plt.xlabel("click_date", fontsize=12)
plt.ylabel('install count per day', fontsize=12)
plt.show()

在这里插入图片描述
每日转化率分析(安装次数/点击次数)

transfer_rate = install/click
plt.figure(figsize=(12,4))
sns.barplot(transfer_rate.index, transfer_rate.values, alpha=0.8, color=p[3])
plt.xlabel("click_date", fontsize=12)
plt.ylabel('transfer_rate per day', fontsize=12)
plt.show()

在这里插入图片描述
用户分析:点击次数

# 每个用户在某日重复点击算一次点击
t = train[['click_date','userID']].drop_duplicates()
users = t.click_date.value_counts()
plt.figure(figsize=(12,4))
sns.barplot(users.index, users.values, alpha=0.8, color=p[4])
plt.xlabel("click_date", fontsize=12)
plt.ylabel('num of user appear of day', fontsize=12)
plt.show()

在这里插入图片描述
app分类分析:每日app种类的点击次数

# 每个app种类在每日的重复点击算作是一次点击
t = train[['click_date','appID']].drop_duplicates()
apps = t.click_date.value_counts()
plt.figure(figsize=(12,4))
sns.barplot(apps.index, apps.values, alpha=0.8, color=p[5])
plt.xlabel("click_date", fontsize=12)
plt.ylabel('num of apps appear of day', fontsize=12)
plt.show()

在这里插入图片描述
app分类点击次数:每种app对应的点击次数

click = train.appCategory.value_counts()
plt.figure(figsize=(12,4))
sns.barplot(click.index, click.values, alpha=0.8, color=p[6])
plt.xlabel("click_date", fontsize=12)
plt.ylabel('click count', fontsize=12)
plt.show()

在这里插入图片描述

6.特征工程

在这里插入图片描述
自定义工具函数库
可以先对用户数据(user.csv)进行观察,然后处理特征
本项目特征较多,所以可以编写一些函数,用来处理相应的特征:

  • 第一类编码、第二类编码的处理
    appCategory:App开发者设定的App类目标签,类目标签有两层,使用3位
    数字编码,百位数表示一级类目,十位个位数表示二级类目,如"210"表示
    一级类目编号为2,二级类目编号为10,类目未知或者无法获取时,标记为0
  • 年龄处理
    可以对年龄进行分段处理
  • 省份、城市处理
    家乡/籍贯(hometown)与常住地(residence)取值具体到市级城市,使用二级编码,千位百位数表示省份,十位个位数表示省内城市,如1806表示省份编号为18,城市编号是省内的6号,编号0表示未知
  • 时间处理(DDHHMM)
    获取天;根据小时将一天分成4段 随后,读取数据,调用工具函数进行特征处理
# 自定义工具函数库
# 1.文件读取
def read_csv_file(f, logging=False):
    print("======读取文件数据=========")
    data = pd.read_csv(f)
    if logging: # 如果想要查看文件的信息
        print(data.head())
        print(f,'包含以下列:')
        print(data.columns.values)
        print(data.describe())
        print(data.info())
    return data

# 2.第一类编码
def categories_process_first_class(cate):
    cate = str(cate)
    if len(cate) == 1: # 如果长度为1
        return int(cate)
    else:
        return int(cate[0])

# 3.第二类编码
def categories_process_second_class(cate):
    cate = str(cate)
    if len(cate) < 3:
        return 0
    else:
        return int(cate[1:])

# 4.年龄处理,切分年龄段(没有固定切分方法)
def age_process(age):
    age = int(age)
    if age == 0:# 年龄未知
        return 0
    elif age <15:
        return 1
    elif age < 25:
        return 2
    elif age <28:
        return 3
    else:
        return 4

# 5.省份处理
def process_province(hometown):
    hometown = str(hometown)
    province = int(hometown[:2])
    return province

# 6.城市处理
def process_city(hometown):
    hometown = str(hometown)
    if len(hometown) > 1:
        city = int(hometown[2:])
    else:
        city = 0 # 城市未知
    return city

随后,读取数据,调用工具函数进行特征处理

# 1.读取数据
train_data = read_csv_file('data/train.csv')
ad = read_csv_file('data/ad.csv')
app_categories = read_csv_file('data/app_categories.csv')
user = read_csv_file('data/user.csv')
test_data = read_csv_file('data/test.csv')
# 2.调用自定义函数进行处理
app_categories['categories_process_first_class'] = app_categories['appCategory'].apply(categories_process_first_class)
app_categories['categories_process_second_class'] = app_categories['appCategory'].apply(categories_process_second_class)
# 对用户的age、hometown、residence调用工具函数分别处理、储存到新的列中
user['age_process'] = user['age'].apply(age_process)
user['hometown_province'] = user['hometown'].apply(process_province)
user['hometown_city'] = user['hometown'].apply(process_city)
user['residence_province'] = user['residence'].apply(process_province)
user['residence_city'] = user['hometown'].apply(process_city)
train_data['clickTime_day'] = train_data['clickTime'].apply(get_time_day)
train_data['clickTime_hour'] = train_data['clickTime'].apply(get_time_hour)
# 对clickTime字段进行处理,并存储到新列中
test_data['clickTime_day'] = test_data['clickTime'].apply(get_time_day)
test_data['clickTime_hour'] = test_data['clickTime'].apply(get_time_hour)

# 3.合并数据集
# 先合并train_data与user
train_user = pd.merge(train_data,user,on="userID")
# 合并的结果,再与ad合并
train_user_ad = pd.merge(train_user,ad,on="creativeID")
# 最后再与app_categories合并
train_user_ad_app = pd.merge(train_user_ad,app_categories,on="appID")

# 4.取出数据和label
# 特征部分
x_user_ad_app = train_user_ad_app.loc[:,['creativeID','userID','positionID',
 'connectionType','telecomsOperator','clickTime_day','clickTime_hour','age', 'gender' ,'education',
 'marriageStatus' ,'haveBaby' , 'residence' ,'age_process',
 'hometown_province', 'hometown_city','residence_province', 'residence_city',
 'adID', 'camgaignID', 'advertiserID', 'appID' ,'appPlatform' ,
 'app_categories_first_class' ,'app_categories_second_class']]

x_user_ad_app = x_user_ad_app.values
x_user_ad_app = np.array(x_user_ad_app,dtype='int32')

#标签部分
y_user_ad_app =train_user_ad_app.loc[:,['label']].values

7.算法的选择与调参

  • 随机森林了解
    假设现在针对的是分类问题,那么随机森林(RandomForest)是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。其实从直观角度来解释,每棵决策树都是一个分类器,那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出
    在这里插入图片描述

  • 调参
    针对同一个模型不同的参数对最终的效果影响较大,所以需要进行算法调参,通常使用网格搜索的办法(GridSearchCV)进行调参

from sklearn.model_selection import GridSearchCV  # 网格搜索(用来调参)
from sklearn.ensemble import RandomForestClassifier   # 随机森林算法
# 提前写好参数组合,用于搜索
param_grid = {
    'n_estimators':[10,100,500,1000],
    'max_features':[0.6,0.7,0.8,0.9]
}

rf = RandomForestClassifier()  # 创建随机森林算法对象
gs = GridSearchCV(rf,param_grid)  # 用来进行网格搜索参数的
# 进行最佳参数搜索(调参),此步骤很耗时!
gs.fit(x_user_ad_app,y_user_ad_app.reshape(y_user_ad_app.shape[0],-1))  
# 打印最终调好的最佳参数
print(gs.best_params_)
广告点击预测
ballhacker的博客
05-25 5193
广告点击预测项目,目的是通过广告和用户信息预测一个广告是否被点击。数据来自Kaggle竞赛(https://www.kaggle.com/c/avazu-ctr-prediction),源数据比较大,选取前40000条。 1. 数据读取和分析 import numpy as np import pandas as pd import matplotlib.pyplot as plt #数据读取 data_df = pd.read_csv('train_subset.csv') #展示头部数据,分
基于Python广告点击预测分析
KongQiDeNvEr的博客
08-09 3929
项目研究目的:本项目目的是通过给定的广告信息和用户信息来预测一个广告点击与否, 如果广告有很大概点击就展示广告,如果概低,就不展示。 本项目分析步骤: (1)了解数据 (2)提取新特征 (3)检查目标变量的分布 (4)了解变量之间的关系 (5)识别潜在异常值 (6)建立基本模型 (7)特征工程 (8)建立逻辑回归模型 (9)建立随机森林模型 (10)对测试数据进行模型评估 (11)重要的特征 # Load Libraries import numpy as np #linear alge
使用python进行广告点击预测的实现
12-31
当前在线广告服务中,广告点击(CTR)是评估广告效果的一个非常重要的指标。 因此,点击预测系统是必不可少的,并广泛用于赞助搜索和实时出价。那么如何计算广告点击呢? 广告点击 = 广告点击量/广告的展现量 如果一个广告被展现了100次,其中被点击了20次,那么点击就是20%。 今天我们就来动手开发一个移动广告点击预测系统,我们数据来自于kaggle,数据包含了10天的Avazu的广告点击数据。 数据 你可以在这里下载移动广告点击数据,由于总数据量达到了4千多万条,数据量过于庞大,为了不影响我们的计算速度,因此我们要从中随机抽样100万条数据,同时我们要对数据的相关字段类型进行
数据科学综合实践项目——广告点击预估
m0_72526865的博客
05-09 2080
数据集为“广告点击预估.csv”,其中包含 13 个特征字段,6 天的数据。共计 39 万多条。特征字段字段描述id用户行为id,唯一表示,无重复date行为时间,精确到秒user_id用户 idproduct产品活动 idwebpage_id网页 id产品类型 id用户所属群组 idgender性别age_level年龄等级user_depth用户价值深度var_1匿名特征isClick是否点击,1 为点击,0 为未点击通过对广告点击数据集的分析,发现点击在。
关于用户广告点击数据集的分析与预测
qq_64449464的博客
10-02 1291
用户浏览页面的时间范围大致为0~100分钟,划分为三个组 #有图表可以看出随着用户浏览页面的时间 和 用户每天在互联网上的平均时间 的增加,广告点击越来越低 #用户浏览页面的时间为50分钟内的用户点击为100%,每天在互联网上的平均时间 在100分钟内的广告点击为94%以上 #直到用户浏览页面的时间为50-100分钟时,点击才大幅下降。男女生点击相差不大,但是周末男生点击明显大于女生 ,随着用户浏览页面的时间和用户每天在互联网上的平均时间 的增加,广告点击越来越低。
CSCNN:新一代京东电商广告排序模型
架构师小秘圈
09-03 579
分享嘉宾:刘鹄京东 算法工程师编辑整理:李沛欣出品平台:DataFunTalk导读:随着电商平台对图像信息的大量引入,通过图像分析来进行广告点击判断就成了新的趋势。本次分享的主题为C...
基于Python广告预测点击分析.zip
06-16
在本题中,我们使用Criteo所共享的一周展示广告数据,数据中提炼了13个连续特征、26个离散特征和用户是否点击了该页面广告的标签。由于能力所限,所以只考虑其中13个连续的数字特征确定出合适的模型,并预测用户在...
Python数据分析-自测试卷1(1).docx
06-12
1. 数据分析是对已收集的数据进行处理、解释和转化,以发现其中的模式、趋势和关联,从而提供决策支持、验证假设或预测未来事件的过程。 2. 数据处理的作用在于确保数据的质量和可用性,包括去除噪声、填补缺失值、...
kaggle广告点击转化预测第二名代码
05-08
4. 模型选择:在广告点击预测中,常见的模型有逻辑回归、决策树、随机森林、梯度提升机(如XGBoost和LightGBM)、神经网络等。这些模型各有优缺点,选择合适的模型取决于数据的特性和问题的需求。 5. 模型训练与...
数据挖掘数据分析应用案例 数据挖掘算法实践 基于Python数据挖掘在电商客户关系管理中的应用.doc
最新发布
06-30
### 数据挖掘数据分析应用案例:基于Python数据挖掘在电商客户关系管理中的应用 #### 引言 随着互联网技术与数据库技术的快速发展,电子商务已经成为一种新型的商业模式,展现出强大的生命力。在这一背景下,...
Python-计算广告推荐系统机器学习MachineLearning点击CTR转化率CVR预估点击预估
08-11
计算广告/推荐系统/机器学习(Machine Learning)/点击(CTR)/转化率(CVR)预估/点击预估
基于深度学习的搜索广告点击预测方法研究
12-22
本文研究的目标是通过给定的信息预测搜索广告点击,通过使用深度 学习模型,挖掘更多的特征之间的关系,从而能更有效的提高预测的结果。 关键词:点击预测;搜索广告;深度学习;深度神经网络;卷积神经网络
使用python进行广告点击预测
热门推荐
weixin_42608414的博客
04-14 1万+
当前在线广告服务中,广告点击(CTR)是评估广告效果的一个非常重要的指标。 因此,点击预测系统是必不可少的,并广泛用于赞助搜索和实时出价。那么如何计算广告点击呢? 广告点击 = 广告点击量/广告的展现量 如果一个广告被展现了100次,其中被点击了20次,那么点击就是20%。 今天我们就来动手开发一个移动广告点击预测系统,我们数据来自于kaggle,数据包含了10天的Ava...
广告点击预测-项目介绍
飞虹舞毓的博客
07-15 6236
项目介绍项目介绍KDD CUP 2012 Track2
广告点击预估
TessieHe的博客
08-26 861
参考 https://cn.linkedin.com/pulse/%E5%B9%BF%E5%91%8A%E7%82%B9%E5%87%BB%E7%8E%87%E9%A2%84%E4%BC%B0%E6%98%AF%E6%80%8E%E4%B9%88%E5%9B%9E%E4%BA%8B-chen-ouyang 点击预测和推荐算法的不同? 广告点击预估需要给出精准的点击,A点击0.3% ...
葫芦书笔记----特征工程
沃·夏澈德的博客
09-28 404
为什么需要对数值类型的特征做归一化? 一句话速记:为了消除数据特征至今啊的量纲影响,使得不同指标之间具有可比性。 详细版:为了将所有特征都统一到一个大致相同的数值区间内。常用方法有线性函数归一化、零均值归一化。归一化的好处有:在学习相同的情况下,更容易通过梯度下降找到最优解。但是数据归一化不是万能的,它对于决策树模型并不适用,以为决策树在进行节点分裂时是根据数据集D关于特征x的信息增益比,而信息增益比和特征x是否经过归一化是无关的,因此归一化并不会改变特征上的信息x增益. 在对数据进行预处理时.
机器学习第五课--广告点击预测项目以及特征选择的介绍
weixin_68063596的博客
09-16 793
这个项目的主要的目的是通过给定的广告信息和用户信息来预测一个广告点击与否。如果广告有很大概点击就展示广告,如果概低,就不展示。因为如果广告没有被点击,对双方(广告主、平台)来讲都没有好处。所以预测这个概非常重要,也是此项目的目标。在这个项目中,你需要完成以下的任务:1.数据的读取和理解: 把给定的.csv文件读入到内存,并通过pandas做数据方面的统计以及可视化来更深入地理解数据。2.特征构造: 从原始特征中衍生出一些新的特征,这部分在机器学习领域也是很重要的工作。
Python数据分析:AQI预测模型构建与异常值处理
"这篇Python数据分析实战文章主要关注的是如何利用机器学习预测空气质量指数(AQI)。作者通过一系列步骤,包括数据加载、数据处理、特征选择、异常值处理和残差图分析,构建了一个基础的预测模型。文中使用了Python...
写文章

热门文章

  • 7.Python数据分析项目之银行客户流失分析 4398
  • 117.Django-缓存redis 4020
  • 8.Python中使用Pandas对时间的操作——创建时间变量、转化为时间对象、使用时间索引、时间序列的使用方式 4001
  • 8.python处理数据——查看、删除、填充缺失值,数据查重 3824
  • 6.Python中使用Pandas定位DataFrame的位置、排序、替换数值 3769

分类专栏

  • Spark框架 2篇
  • Hadoop大数据分析项目 4篇
  • Zookeeper分布式协调框架(扩展) 3篇
  • Hadoop 分布式文件系统:HDFS 5篇
  • Hive 10篇
  • MapReduce 3篇
  • 数据分析-统计分析 16篇
  • 数据分析-数据管理 15篇
  • 数据分析-数据可视化 8篇
  • Python_Django大型电商项目 20篇
  • Python_Django框架 40篇
  • python_Tornado项目之论坛项目 16篇
  • Python_Tornado 框架 31篇
  • 电子商城管理系统 134篇
  • Tableau 8篇
  • Vue 36篇
  • Flask 36篇
  • leetcode刷题日记 2篇

最新评论

  • 7.Python数据分析项目之银行客户流失分析

    2401_87453613: 请问哪里有啊

  • 40.(后端)根据ID获取用户信息

    m0_73129225: postman测试会说说数据不完整,怎么才能获取到完整数据?

  • 2.Python数据分析项目——旅游景点票价预测

    这场雨56: 您好 请问可以分享一下数据集吗

  • 7.Python数据分析项目之银行客户流失分析

    m0_70568768: 求求博主原数据

  • 5.Python数据分析项目之文本分类-自然语言处理

    &275: 有数据集可以分享吗

最新文章

  • 2.Spark运行模式
  • 1.Spark介绍
  • 4.hadoop集群扩容与hive异常处理
2023年70篇
2022年329篇

目录

目录

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳SEO优化公司商丘网站优化注意事项网站怎么优化快排php 怎么样优化网站实惠的网站优化排名六盘水百度网站优化公司常平镇网站优化方案网站快速优化外包公司元氏个人网站优化系统北京网站优化排名价格优化通信网站长岛视频网站优化稳定网站优化推广黄山网站整站优化哪家快网站搜索优化聚焦云速捷用对幕墙维修网站优化的建议长沙网站优化seo网站优化产品在哪里修改宁波南部商务区网站优化价格柏乡县网站优化公司阳春外贸网站优化优化网站排名用金手指靠谱临江百度网站优化菏泽济南网站优化推广宣城网站优化价格海口seo外包优化网站文体用品网站优化好不好资阳优化网站服务珠海正规的销售行业网站优化网站结构优化目标有哪些GOOGLE网站优化设计歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化