欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python實(shí)現(xiàn)廣告點(diǎn)擊率預(yù)測

 更新時間:2023年10月09日 10:14:16   作者:python收藏家  
廣告點(diǎn)擊率是指有多少用戶點(diǎn)擊了您的廣告與有多少用戶查看了您的廣告的比率,本文主要為大家介紹了如何使用Python實(shí)現(xiàn)廣告點(diǎn)擊率預(yù)測,感興趣的小伙伴可以了解下

廣告點(diǎn)擊率是指有多少用戶點(diǎn)擊了您的廣告與有多少用戶查看了您的廣告的比率。例如,100個用戶中有5個在觀看XX視頻時點(diǎn)擊了廣告。因此,在這種情況下,XX廣告的CTR將是5%。分析點(diǎn)擊率有助于公司為目標(biāo)受眾找到最佳廣告。所以,如果你想學(xué)習(xí)如何用機(jī)器學(xué)習(xí)分析和預(yù)測廣告點(diǎn)擊率,這篇文章是為你準(zhǔn)備的。本文將帶您了解使用Python進(jìn)行機(jī)器學(xué)習(xí)的廣告點(diǎn)擊率預(yù)測。

廣告點(diǎn)擊率預(yù)測

廣告點(diǎn)擊率預(yù)測是指預(yù)測用戶是否會點(diǎn)擊廣告。在廣告點(diǎn)擊率預(yù)測的任務(wù)中,我們需要訓(xùn)練一個機(jī)器學(xué)習(xí)模型來找到所有點(diǎn)擊廣告的用戶特征之間的關(guān)系。

導(dǎo)入必要的Python庫和數(shù)據(jù)集來開始任務(wù):

import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
import plotly.io as pio
import numpy as np
pio.templates.default = "plotly_white"
data = pd.read_csv("ad_10000records.csv")
print(data.head())

輸出

   Daily Time Spent on Site   Age  Area Income  Daily Internet Usage  \
0                     62.26  32.0     69481.85                172.83   
1                     41.73  31.0     61840.26                207.17   
2                     44.40  30.0     57877.15                172.83   
3                     59.88  28.0     56180.93                207.17   
4                     49.21  30.0     54324.73                201.58   
                         Ad Topic Line             City  Gender  \
0      Decentralized real-time circuit         Lisafort    Male   
1       Optional full-range projection  West Angelabury    Male   
2  Total 5thgeneration standardization        Reyesfurt  Female   
3          Balanced empowering success      New Michael  Female   
4  Total 5thgeneration standardization     West Richard  Female   
                        Country            Timestamp  Clicked on Ad  
0  Svalbard & Jan Mayen Islands  2016-06-09 21:43:05              0  
1                     Singapore  2016-01-16 17:56:05              0  
2                    Guadeloupe  2016-06-29 10:50:45              0  
3                        Zambia  2016-06-21 14:32:32              0  
4                         Qatar  2016-07-21 10:54:35              1  

“廣告點(diǎn)擊”列包含0和1值,其中0表示未點(diǎn)擊,1表示點(diǎn)擊。將這些值轉(zhuǎn)換為“yes”和“no”:

data["Clicked on Ad"] = data["Clicked on Ad"].map({0: "No", 
                               1: "Yes"})

點(diǎn)擊率分析

現(xiàn)在讓我們根據(jù)用戶在網(wǎng)站上花費(fèi)的時間來分析點(diǎn)擊率:

fig = px.box(data, 
             x="Daily Time Spent on Site",  
             color="Clicked on Ad", 
             title="Click Through Rate based Time Spent on Site", 
             color_discrete_map={'Yes':'blue',
                                 'No':'red'})
fig.update_traces(quartilemethod="exclusive")
fig.show()

從上面的圖表中,我們可以看到,在網(wǎng)站上花費(fèi)更多時間的用戶點(diǎn)擊更多的廣告。現(xiàn)在我們根據(jù)用戶的日?;ヂ?lián)網(wǎng)使用情況來分析一下點(diǎn)擊率:

fig = px.box(data, 
             x="Daily Internet Usage",  
             color="Clicked on Ad", 
             title="Click Through Rate based on Daily Internet Usage", 
             color_discrete_map={'Yes':'blue',
                                 'No':'red'})
fig.update_traces(quartilemethod="exclusive")
fig.show()

從上圖中,我們可以看到,與互聯(lián)網(wǎng)使用率較低的用戶相比,互聯(lián)網(wǎng)使用率較高的用戶點(diǎn)擊廣告較少?,F(xiàn)在我們根據(jù)用戶的年齡來分析一下點(diǎn)擊率:

fig = px.box(data, 
             x="Age",  
             color="Clicked on Ad", 
             title="Click Through Rate based on Age", 
             color_discrete_map={'Yes':'blue',
                                 'No':'red'})
fig.update_traces(quartilemethod="exclusive")
fig.show()

從上圖中我們可以看到,40歲左右的用戶比27-36歲左右的用戶點(diǎn)擊廣告更多。現(xiàn)在我們根據(jù)用戶的收入來分析一下點(diǎn)擊率:

fig = px.box(data, 
             x="Area Income",  
             color="Clicked on Ad", 
             title="Click Through Rate based on Income", 
             color_discrete_map={'Yes':'blue',
                                 'No':'red'})
fig.update_traces(quartilemethod="exclusive")
fig.show()

沒有太大的差別,但來自高收入地區(qū)的人點(diǎn)擊廣告的次數(shù)更少。

計算廣告的點(diǎn)擊率

現(xiàn)在讓我們來計算整體廣告點(diǎn)擊率。在這里,我們需要計算點(diǎn)擊廣告的用戶與對廣告留下印象的用戶的比例。讓我們來看看用戶的分布:

data["Clicked on Ad"].value_counts()

輸出

No     5083
Yes    4917
Name: Clicked on Ad, dtype: int64

因此,10000名用戶中有4917人點(diǎn)擊了廣告。讓我們計算CTR:

click_through_rate = 4917 / 10000 * 100
print(click_through_rate)

輸出

49.17

所以CTR是49.17。

點(diǎn)擊率預(yù)測模型

現(xiàn)在讓我們繼續(xù)訓(xùn)練機(jī)器學(xué)習(xí)模型來預(yù)測點(diǎn)擊率。首先,將把數(shù)據(jù)分成訓(xùn)練集和測試集:

data["Gender"] = data["Gender"].map({"Male": 1, 
                               "Female": 0})
x=data.iloc[:,0:7]
x=x.drop(['Ad Topic Line','City'],axis=1)
y=data.iloc[:,9]
from sklearn.model_selection import train_test_split
xtrain,xtest,ytrain,ytest=train_test_split(x,y,
                                           test_size=0.2,
                                           random_state=4)

現(xiàn)在讓我們使用隨機(jī)森林分類算法來訓(xùn)練模型:

from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(x, y)

現(xiàn)在讓我們來看看模型的準(zhǔn)確性:

from sklearn.metrics import accuracy_score
print(accuracy_score(ytest,y_pred))

輸出

0.9615

現(xiàn)在讓我們通過預(yù)測來測試模型:

print("Ads Click Through Rate Prediction : ")
a = float(input("Daily Time Spent on Site: "))
b = float(input("Age: "))
c = float(input("Area Income: "))
d = float(input("Daily Internet Usage: "))
e = input("Gender (Male = 1, Female = 0) : ")
features = np.array([[a, b, c, d, e]])
print("Will the user click on ad = ", model.predict(features))

輸出

Ads Click Through Rate Prediction : 
Daily Time Spent on Site: 62.26
Age: 28
Area Income: 61840.26
Daily Internet Usage: 207.17
Gender (Male = 1, Female = 0) : 0
Will the user click on ad =  ['No']

總結(jié)

這就是如何使用機(jī)器學(xué)習(xí)來完成使用Python進(jìn)行廣告點(diǎn)擊率預(yù)測的任務(wù)。廣告點(diǎn)擊率意味著預(yù)測用戶是否會點(diǎn)擊廣告。在這個任務(wù)中,我們需要訓(xùn)練一個機(jī)器學(xué)習(xí)模型,以找到所有點(diǎn)擊廣告的用戶特征之間的關(guān)系。

到此這篇關(guān)于使用Python實(shí)現(xiàn)廣告點(diǎn)擊率預(yù)測的文章就介紹到這了,更多相關(guān)Python廣告點(diǎn)擊率預(yù)測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python Django編寫接口并用Jmeter測試的方法

    python Django編寫接口并用Jmeter測試的方法

    這篇文章主要介紹了python Django編寫接口并用Jmeter測試,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python切片的步進(jìn)、添加、連接簡單操作示例

    python切片的步進(jìn)、添加、連接簡單操作示例

    這篇文章主要介紹了python切片的步進(jìn)、添加、連接簡單操作,結(jié)合實(shí)例形式分析了Python切片運(yùn)算的常見操作技巧,需要的朋友可以參考下
    2019-07-07
  • 使用Python通過代碼創(chuàng)建圖表的詳細(xì)步驟

    使用Python通過代碼創(chuàng)建圖表的詳細(xì)步驟

    這篇文章主要介紹了使用Python通過代碼創(chuàng)建圖表的詳細(xì)步驟,文中介紹了如何使用DiagramasCode工具創(chuàng)建基礎(chǔ)架構(gòu)的架構(gòu)圖,并通過Python腳本生成并上傳到對象存儲桶,需要的朋友可以參考下
    2024-12-12
  • 詳解python程序中的多任務(wù)

    詳解python程序中的多任務(wù)

    這篇文章主要介紹了python程序中多任務(wù)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • python xpath獲取頁面注釋的方法

    python xpath獲取頁面注釋的方法

    今天小編就為大家分享一篇python xpath獲取頁面注釋的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python爬蟲實(shí)現(xiàn)Cookie模擬登錄

    Python爬蟲實(shí)現(xiàn)Cookie模擬登錄

    這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)Cookie模擬登錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python 中 Meta Classes詳解

    Python 中 Meta Classes詳解

    首先,在認(rèn)識metaclass之前,你需要認(rèn)識下python中的class。python中class的奇怪特性借鑒了smalltalk語言。大多數(shù)語言中,classes僅僅是用于描述怎樣創(chuàng)建一個對象的代碼端。在某種程度上說,python中的class也是這樣的。
    2016-02-02
  • python繪制淺色范圍曲線的示例代碼

    python繪制淺色范圍曲線的示例代碼

    這篇文章主要介紹了python繪制淺色范圍曲線,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • python3獲取當(dāng)前目錄的實(shí)現(xiàn)方法

    python3獲取當(dāng)前目錄的實(shí)現(xiàn)方法

    這篇文章主要介紹了python3獲取當(dāng)前目錄的實(shí)現(xiàn)方法,文中給大家提到了python3獲取當(dāng)前目錄和上級目錄的方法,需要的朋友可以參考下
    2019-07-07
  • python八種降維方法匯總

    python八種降維方法匯總

    在Python中,有多種降維方法可以使用,本文就來介紹八種降維方法以及使用場景,具有一定的參考價值,感興趣的可以一下,感興趣的可以了解一下
    2023-10-10

最新評論