日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

用机器学习分析完网红视频后,我发现播放量暴涨的秘密

發布時間:2023/11/21 综合教程 41 生活家
生活随笔 收集整理的這篇文章主要介紹了 用机器学习分析完网红视频后,我发现播放量暴涨的秘密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在視頻成為重要媒介,vlog、視頻博主也成為一種職業的當下,如何提高自己視頻的播放量,是廣大內容生產者最頭禿的問題之一。網絡上當然有許多內容制作、熱點跟蹤、剪輯技巧的分享,但你可能不知道,機器學習也可以在其中發揮大作用。

join into data上兩位作者 Lianne 和 Justin 做了一個硬核的技術分析。他們的分析對象是 YouTube 一個新近崛起的健身博主Sydney Cummings。

Sydney擁有美國國家運動醫學會(NASM)的私人教練證,同時也是一位跳高運動員。她的賬號注冊于2016年5月17日,累計播放量27,031,566,目前擁有21萬粉絲,每天都穩定更新,很有研究意義。請注意,以下研究都將通過 Python 實現。

Sydney Cummings 的標題都有一定套路,比如最近一個標題是《30分鐘手臂和強壯臀肌鍛煉!燃燒310卡路里!》,通常涵蓋時間、身體部位、消耗的卡路里以及其他關于鍛煉的描述性詞匯。觀眾點擊這段視頻之前,就會知道幾個信息:

  • 30分鐘——我將在30分鐘內完成整個訓練;

  • 鍛煉手臂和臀肌——我將致力于手臂和臀肌,專注于力量;

  • 燃燒310卡路里——我會燃燒相當多的卡路里。

掌握以上關鍵信息是預先的準備,接下來還有六個步驟:觀察數據、用自然語言處理技術對視頻進行分類、選擇特征、創建目標、構建決策樹、閱讀決策樹。接下來就和雷鋒網一起看看作者究竟是怎么一步一步展開研究的。

事前準備:抓取數據

其實有很多不同的方法來抓取 YouTube 數據。由于這只是個一次性項目,所以作者選擇了一個只需要手工操作,不依賴額外工具的簡單方法。

以下是分步步驟:

  • 選中所有視頻;

  • 右鍵單擊最新的視頻并選擇“Inspect“;

  • 將光標懸停在每一行上,找到高亮顯示了所有視頻的最低級別的 HTML 代碼/元素級別;

    例如,如果使用 Chrome 瀏覽器,它看起來就像這樣:

    【 圖片來源:Sydney’s YouTube Video page 所有者:Sydney】

  • 右鍵單擊元素并選擇“復制”,然后選擇“復制元素”;

  • 將復制的元素粘貼到文本文件中并保存,這里使用 JupyterLab 文本文件并將其保存為 sydney.txt;

  • 使用 Python 提取信息并清理數據。

接下來就是有趣的部分了,他們將從這個數據中集中提取特征,并研究是哪些因素影響著播放量。

步驟1:觀察數據

將數據導入到 Python 中是在最后一節中完成的,以下是數據集 df_videos,一共有837個視頻。

df_videos 有8個特征來描述每個視頻細節,包括:標題、多久前發布的、視頻長度、播放量、地址、卡路里、發布具體日期、發布至今的天數。

此外,他們注意到數據有重疊,因為博主曾經多次上傳同一個視頻,在接下來的分析中將會忽略這部分不大的樣本。

步驟2:用 NLP 對視頻進行分類

在這一步中,他們根據標題中的關鍵詞對視頻進行分類。

分組標準是:

  • 這個視頻針對的是身體哪個部位?

  • 這個視頻的目的是增肌還是減肥?

  • 或者還有什么其他關鍵詞?

作者使用了自然語言工具包(NLTK),Python 中一個常用的開源 NLP 庫,來處理標題。

生成關鍵詞列表

首先,標記化視頻的標題。此過程使用分隔符(如空格(" ")將標題文本字符串拆分為不同的標記(單詞)。這樣,計算機程序就可以更好地理解文本。

這些標題中有538個不同的單詞,以下列出了使用頻率最高的標記/單詞。可以發現,頻繁使用的就是那幾個詞,這也再次證明博主確實喜歡起標準格式的視頻標題。

基于高頻詞列表,作者創建了3個關鍵字列表,可用于接下來環節對視頻進行分類。

  • body_keywords(正文—關鍵詞)——這標識了視頻針對的身體部位,如“完整”身體、“腹肌”、“腿”。

  • workout_type_keywords(健身—類型關鍵字)——區分鍛煉類型,如“有氧”、“伸展”、“力量”。

  • 其他關鍵字——這包括常用但難以歸類的關鍵詞,如“訓練營”、“精疲力竭”、“纖體”(toning)。

詞干關鍵詞列表

在形成這些關鍵字列表后,作者還提取了詞干。這是為了確保計算機能夠識別近義詞。例如,ABS 是 Abdominal Exercise(腹部鍛煉)的簡寫,單詞“abs”和“ab”有相同的詞干“ab”。

YouTube 標題的標記和詞干

除了關鍵詞,作者還需要標記和提取標題詞干。這些過程可為進一步匹配關鍵字和標題列表做準備。

步驟3:特征工程

經過頭腦風暴,他們選擇了兩種特征——基于關鍵詞和基于時間。

基于關鍵詞的特征 Indicator Features

由于前一步的工作,現在有3個關鍵詞列表和精簡的標題,可以匹配它們來對視頻進行分類。

按照 body_keywords 和 workout_type_keywords 分類,一個視頻中有許多關鍵詞。所以在匹配之前,作者還創建了2個特征:area 區域和 workout_type 健身類型。這些特征將一個視頻的所有身體部位和鍛煉類型連接成一個字符串。

例如,一個健身視頻可以同時做“腹肌”和“腿”,或者同時做“有氧”和“力量”。該視頻的特征區域為“腹肌+腿”,健身類型為“有氧+力量”。

同時,作者也識別出了相似的關鍵字,如“總共”和“完全”、“核心”和“腹肌”,將它們歸在一組。

最后,他們創建了三種不同類型的虛擬特征(dummy features):

  • is _ { } _區域,識別視頻是否包含特定身體部位;

  • is_ { } _健身,確定健身類型;

  • title_contains_{},查看標題是否包含其他關鍵詞。

為了清楚起見,視頻標題“腿部力量消耗訓練”應該是 _leg_area = True,is_strength_workout = True,title_contains_burnout = True,而所有其他都為 False。

Frequency Features

除以上特征外,作者還創建了三個特征:num_body_areas,num_workout_types,和num_other_keyword,用來計算一個視頻標題中提到的關鍵詞的數量。

舉個例子,一個標題是“腹肌和腿部有氧力量訓練”的 num_body_areas 和 num_workout_types 都是2。

這些特征有助于確定視頻中應包含的身體部位或鍛煉類型的最佳數量。

Rate Features

最后同樣重要的是,作者創建了一個特征:calories_per_min(每分鐘卡路里數)看看卡路里的燃燒速度。畢竟,觀眾都想要一些明確的(可量化的)鍛煉目標。

當然整個過程中也難免存在一些被錯誤分類的視頻,作者也在轉向時間特征前進行了手動修復,這里不再贅述。

基于時間序列的特征

有了上述基于關鍵詞的特征,作者已經發現受歡迎視頻的類型。但這是否意味著博主應該一直發相同類型的視頻?

為了回答這個問題,他們還創建了一些基于時間序列的特征:

  • num_same_area,過去30天內發布的針對同一區域的視頻(包括當前視頻)數量。

    例如,特征= 6,說明除了當前視頻針對上半身時,過去30天中還有5個上身健身視頻。

  • num_same_workout,該特征類似 num_same_area,只是統計的是健身類型。

    例如,特征= 3,說明除了當前視頻 HIIT 健身,在過去30天內還有2個 HIIT 健身視頻。

  • last_same_area,距離上一個針對同一塊身體部位視頻過去的天數。

    例如,該特征= 10,說明針對腹肌的上一個視頻,發布在10天前。

  • last_same_workout,同 last_same_area,只是針對健身類型。

  • num_unique_areas,過去30天內鍛煉了幾塊不同的身體部位。

  • num _ unique _workouts,過去30天發布的不同健身類型視頻的數量。

這些特征將幫助了解觀眾是喜歡相同的還是不同類型的視頻。

需要說明的是,博主偶爾會發布與健身無關的視頻,播放數差距很大,所以作者未將這些列入分析。另外他們也過濾掉了前30天的視頻,因為它們缺乏足夠的歷史數據。

接下來請看下面特征工程的具體過程。

多重共線性檢驗Test for Multicollinearity

什么是多重共線性檢驗,維基百科的解釋是,多重共線性(也稱共線性)是一種現象,其中多元回歸模型中的一個預測變量可以以相當高的準確度從其他預測變量中線性預測。多重共線性不會降低模型整體的預測能力或可靠性,至少在樣本數據集中是如此;它只影響單個預測因子的計算。

為什么這很重要?

假設博主只在周一發布力量訓練,而且她的視頻在周一的播放量總是更高。那么分析播放量時,應該歸因它們發布在周一,還是因為它們是力量訓練呢?為了獲得真實的答案,作者必須確保特征之間沒有強共線性。

成對相關(pairwisecorrelations)是常用的方法,但當出現多個特征(多于一對)時,可能會同時存在共線性。

因此,作者使用了一種更復雜的方法——k折交叉驗證(K-fold cross-validation)來達到目的。

詳細過程如下:

  • 根據判斷,選擇一組關鍵特征來測試共線性。

作者選擇了對于YouTube視頻播放量至關重要的特征,同時還添加了三個由隨機數組成的特征:rand0,rand1,rand2。當比較特征之間的關系時,它們充當anchor。如果一個特征與這些隨機特征相比不太重要或不太相似時,那么它就不是目標特征的重要自變量。

  • 為k折交叉驗證準備這些特征。

在此過程中,他們轉換分類特征(categorical features):area和workout_type。這種轉換確保每個類別級別至少有K個值。

  • 使用其中一個特征作為目標,其余特征作為自變量,來訓練預測模型。

接下來,作者遍歷每個特征,并使用其他特征擬合一個模型來預測它,他們用了一個簡單的梯度提升模型(Gradient Boosting Model ,GBM)和K折驗證,并且根據目標特征是數字的還是分類的,應用不同的模型和分數(模型預測能力評估指標)。

當目標特征是數字時,作者使用Gradient Boosting Regressor模型和均方根誤差(RMSE);當目標特征是分類特征時,則使用Gradient Boosting Classifier模型和Accuracy(精度)。

對于每個目標,他們打印出K折驗證分數(平均分)和最重要的5個自變量。

  • 研究得分和每個目標特征的重要自變量。

作者試圖研究每個目標特征及其與自變量的關系。當然本文不會列舉整個過程,將舉兩個例子。

作者發現length(視頻長度)和calories特征是相關的。這個發現很直觀,因為健身的時間越長,消耗的卡路里就越多。

這種關系不難理解。

length和calories之間存在正相關,但這種強度還不足以將它們直接歸到一塊。因為40-45分鐘的視頻消耗的熱量與30-35分鐘、50-55分鐘,甚至與60多分鐘的視頻,都有重疊部分。因此,兩個特征都保留。

此外,作者發現num_same_area和area_full,兩個特征也是相關的,這個發現有點令人驚訝,接下來開始解密。

下圖顯示了num_same_area和area之間的關系。

num_same_area特征,統計的是在過去30天內發布的針對于同一部位視頻(包括當前視頻)的數量。area_ful代表全身鍛煉,這是Sydney視頻中最常見的類型。因此,當num_same_area很大時,那么這些視頻就是針對全身的鍛煉。

假設我們發現更高的num_same_area(>=10)確實會導致更高的YouTube瀏覽量,但我們無法知道這是因為area_full還是因為num_same_area。因此,作者放棄了num_same_area特征,也因為相同的邏輯放棄相num_same_workouts特征。

步驟4:創建目標

你可能還記得,這個研究的目標是增加YouTube的播放量。是不是說明,我們可以直接拿播放量作為目標呢?

但請注意!播放量呈偏態分布。播放量中值是27,641次,而最高的視頻達到130萬。這種不平衡會給模型的解釋性帶來問題。

因此,作者創建了特征views_quartile,以它作為目標。

他們將視頻分為兩類——高播放視頻(“high”)和低播放視頻(“low”)。“high”占總播放量的75%,也就是播放數35578及以上的視頻,剩下的都歸到“low”。

通過這種方式,作者使用預測模型來找到播放量最高的25%的視頻的特征組合。

步驟5:構建決策樹

準備好了一切工作,我們根據目標views_quartile建立一個決策樹模型啦!

為了避免過度擬合,作者將一個葉子節點的最小樣本設置為10。為了讓我們更容易理解,作者將樹的最大深度設置為8層。

步驟6:閱讀決策樹

在最后一步中,作者將研究并總結導致高或者低播放量的“分支”。他們到底發現了什么呢?

發現1:calories_per_min是最重要的特征

沒錯,calories_per_min是最重要的特征。人們似乎不太關心健身類型或身體部位。

每分鐘消耗的卡路里≥ 12.025屬于高消耗,60%(51/(34+51) )的視頻都有較高的觀看率。

每分鐘燃燒的卡路里少于(≤ 9.846)的視頻則遠沒有受歡迎,只有7.2%(12/(154+12) =)有較高的播放。

而每分鐘消耗卡路里在9.846到12.025之間的視頻,其他因素也會產生較大作用。

發現2:不同部位、多種方式鍛煉并不能提高播放量

這個發現超乎作者想象,難道不是各種各樣的鍛煉更好嗎?

當過去一個月,身體不同部位的鍛煉數量(num_unique_area)很高,≥ 10時,視頻的觀看傾向低。即使每分鐘燃燒的卡路里很高,這種情況依然成立。

結合前兩個觀點,78%(42/(12+42) )的視頻在以下情況下獲得了更多的播放:

  • 每分鐘燃燒的熱量很高(≥ 12.025)

  • 過去一個月中身體不同部位的鍛煉數量較少(< 10).。

發現3:臀部健身很受歡迎

當一段視頻消耗的卡路里較少(calories_per_min≤ 9.846)時,但只要是臀部鍛煉,33%(5/(10+5) )仍能獲得高播放;不然,只有4.6%(7/(144+7) )視頻擁有較高播放。

建議:如何提高播放

綜上,作者給Sydney提出了三條建議:

建議1:燃燒卡路里

正如我們所見,每分鐘消耗的卡路里是最重要的特征,12.025是個魔法數字。

下表是不同時長的視頻應該燃燒多少卡路里的節點:

  • 30分鐘健身:361卡路里

  • 40分鐘健身:481卡路里

  • 50分鐘健身:601卡路里

  • 60分鐘健身:722卡路里

作者還提出了一個猜想:數字(時長和卡路里)對人的刺激只是心理上,大家可能就是喜歡看到卡路里的前兩位數比時長大得多,這說明可以用更短的時間,消耗更多的卡路里。

建議2:少用不同的身體部位關鍵詞

Sometimeslessis more.

人們不喜歡健身標題中有太多不同的身體部位。根據模型,在一個月內針對少于10個身體部位的組合更好。

作者注意到Sydney在她最近的視頻中使用了更少的身體部位關鍵詞。最明顯的一點是,她一直在使用“手臂”或“上身”,而不是像“二頭肌”或“背部”這樣的詞。

建議3:多多發布臀部健身

Sydney的訂閱者可能更多是女士,她們傾向于“臀部”塑性,而不是增加手臂肌肉。人們愿意犧牲燃燒更少的卡路里來獲得更健美的臀部。也許Sydney應該一直為燃燒更少卡路里的視頻加入一些臀部運動。

建議4:未經驗證的想法

總結

以上是生活随笔為你收集整理的用机器学习分析完网红视频后,我发现播放量暴涨的秘密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。