Feature Engineering 特征工程 1. Baseline Model
生活随笔
收集整理的這篇文章主要介紹了
Feature Engineering 特征工程 1. Baseline Model
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 讀取數據
- 2. 處理label
- 3. 添加特征
- 4. 數據集切片
- 5. 訓練
- 6. 預測
learn from https://www.kaggle.com/learn/feature-engineering
下一篇:Feature Engineering 特征工程 2. Categorical Encodings
1. 讀取數據
預測任務:用戶是否會下載APP,當其點擊廣告以后
數據集:ks-projects-201801.csv
- 讀取數據,指定兩個特征'deadline','launched',parse_dates解析為時間
預測Kickstarter項目是否會成功。state作為結果label
可以使用類別category,貨幣currency,資金目標funding goal,國家country以及啟動時間launched等特征
2. 處理label
- 準備標簽列,看看有哪些值,轉換成可用的數字格式
有6種數值
array(['failed', 'canceled', 'successful', 'live', 'undefined','suspended'], dtype=object)每種多少個?按state分組,每組中ID行數有多少
ks.groupby('state')['ID'].count() state canceled 38779 failed 197719 live 2799 successful 133956 suspended 1846 undefined 3562 Name: ID, dtype: int64- 簡單處理下標簽列,正在進行的項目live丟棄,successful的標記為1,其余的為0
3. 添加特征
- 把launched時間拆分成,年月日小時,作為新的特征
- 轉換文字特征category, currency, country為數字
- 將選擇使用的特征合并在一個數據里
4. 數據集切片
- 數據切片,按比例分成訓練集、驗證集、測試集(0.8,0.1,0.1)
- 更高級的簡單做法sklearn.model_selection.StratifiedShuffleSplit
需要關注下,label 在每個數據集中的占比是否接近
for each in [train, valid, test]:print("Outcome fraction = {:.4f}".format(each.outcome.mean())) Outcome fraction = 0.3570 Outcome fraction = 0.3539 Outcome fraction = 0.35425. 訓練
- 使用LightGBM模型進行訓練
機器學習算法之LightGBM
feature_cols = train.columns.drop('outcome')dtrain = lgb.Dataset(train[feature_cols], label=train['outcome']) dvalid = lgb.Dataset(valid[feature_cols], label=valid['outcome'])param = {'num_leaves': 64, 'objective': 'binary'} param['metric'] = 'auc' num_round = 1000 bst = lgb.train(param, dtrain, num_round, valid_sets=[dvalid],early_stopping_rounds=10, verbose_eval=False)6. 預測
- 對測試集進行預測
下一篇:Feature Engineering 特征工程 2. Categorical Encodings
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Feature Engineering 特征工程 1. Baseline Model的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 1517.
- 下一篇: LeetCode 309. 最佳买卖股票