本文來自AI新媒體量子位(QbitAI)
Kickstarter是一家美國的衆籌平台。自2009年成立至今,已經有36萬餘個衆籌項目在平台上立項,總共籌集到30多億美元的項目衆籌款。其中,衆籌項目的成功率為35.83%。
△ 圖檔來自Kickstarter官網
這篇文章中,iOS開發人員Shrikar将用機器學習預測Kickstarter上項目衆籌成功的可能性。它也能幫助發起人調整項目的名稱、描述、關鍵詞以及募集資金數,使衆籌成功的可能性最大。用上傳圖檔的圖像特征提高模型的準确率非常奏效,你可以在Kaggle中擷取到這些資料集。
Kaggle資料集位址:
https://www.kaggle.com/codename007/funding-successful-projects
幾乎所有機器學習問題都會從挖掘資料并且試圖了解更多資訊開始,我們也不例外。
Kickstarter中需要募集的資訊大緻有如下幾類:
1.Project_id:項目的唯一識别符
2.name:衆籌項目名稱
3.desc:項目描述
4.keywords:項目關鍵詞
5.disable_communication: 通訊狀态
6.country:項目所在國家
7.currency:計劃衆籌資金
8.deadline:衆籌截止日期
9.state_changed_at:狀态變更
10、created_at:成功後項目開始日期
11.launched:項目計劃完成日期
12.backers_count: 贊助人數量
13.final_status: 目标變量
我們需要加入一些特征來建立機器學習模型,duration和cleaned_text就是很好的選擇。下面我們将拟添加特征羅列出來:
all_text:項目名稱+描述+關鍵詞(需除去連字元)
duration:項目總持續時間
days_status_changed:改變後到截止時的日期數
cleaned_text:删除标點并且隻留文本
△ 以國家為标準劃分Kickstarter上的項目
△ 以國家标準劃分的項目是否衆籌成功
△ 項目中的最高籌集金額
scikit-learn提供了一種極好的特征可以用來構模組化型,也就是我們常說的管道(Pipeline)。本案例中既有文本特征也有數值,是以我們需要有差別地轉換它們。
首先,我們需要看看在被機器學習算法使用前,如何用特征聯合(feature union)合并特征。
為了用特征聯合合并,我們需要建立幾個轉換器混入(mixin)。這些混入可以使我們從計算機中提取某些列,并将它們傳遞給不同的轉換器。
我們看看怎樣構模組化型并安裝管道。
結果如下:
在這種情況下,目标類是不平衡的:
是以我們如果總是預測輸出為0,那麼将糾正(73568)/(73568+34561)≈68%的情況。模型能以目前86%的準确度來學習,我們基本上就能放心了。如果出現不平衡的情況,可以用AUC曲線(Area Under Curve)評估模型。
如要進一步探索,請移步GitHub代碼區:
https://github.com/sarchak/MachineLearningNotebooks
【完】
本文作者:安妮
原文釋出時間:2017-07-17