Hike News
Hike News

機器學習-特徵工程-特徵選擇-包裝法

Introduction 包裝法(wrapper)仍是一種特徵選擇和演算法訓練同時進行的方法 與嵌入法相似的地方,仍是依賴算法有coef_及feature_importances_等屬性來完成特徵選擇 不同之處為 使用一個專業的數據挖掘演算法;而非使用 在評估模型使用的演算法 wrapper method 黑箱中所使用的Learning Algorithm是一個目標函數,專門用於選取特徵 不需像過濾法那樣在指定評估指標 和 threshold值 計算成本位於嵌入法與過濾法中間 包裝法效果是所有特徵選擇方法中最利於提升模型表現的 不適用於大 包裝法相比嵌入法更能保證模型效果

Continue Reading →

機器學習-特徵工程-特徵選擇-嵌入法

Introduction 嵌入法(Embedded)是讓演算法自己決定使用那些特徵的方法 特徵選擇 及 演算法訓練 同時進行 特徵的選擇是依賴模型的表現來進行選擇,因此為一循環過程 Embedded method 最後得到各個特徵的權值,根據權值從大到小選擇特徵 相比過濾法,嵌入法的篩選的特徵更為精確,對模型更有效 缺點1:無法有效界定有用特徵 權值係數的臨界值 不像過濾法有p值可幫助我們做界定 只能說要是權值係數為0時,則對模型毫無貢獻 改善方法: 權值係數作為 超參數,使用學習曲線方法進行調參 根據 模型本身性質 判斷權值係數範圍 缺點2:因為其是引入演算法來挑選特徵,且會使用全部特徵 計算時間與所使用的演算法 及 數據量有關係 from sklearn.feature_selection import SelectFromModel

Continue Reading →

機器學習-特徵工程-特徵選擇(feature_selection)-過濾法

Introduction從所有的特徵中,選擇出有意義的或對模型有幫助的特徵 避免必須將所有特徵都導入模型進行訓練的窘境 重要!!:必須與數據提供者討論 若是我們無法找到合適領域的人幫助理解數據來選擇特徵的話,可使用以下四種方法 過濾法 嵌入法 包裝法 降維演算法

Continue Reading →

機器學習-特徵預處理-處理連續型數據

Introduction 二值化(binarizer) 根據閥值(threshold)將數值二元化(大於閥值設為1;小於or等於閥值設為0) 用於處理連續型變量 連續型變量劃分為二分類 決定僅考慮某種現象存在與否 分段(KBinsDiscretizer;分箱) 將連續型數據劃分為不同分類變量 例如:根據不同的年齡段分成老年、中年、青少年、小孩、幼齡

Continue Reading →

機器學習-特徵工程-填補缺失值

Introduction 現實中所蒐集的數據不可能完美,往往伴隨著缺失值的存在處理方法通常為: 直接將含有缺失值的樣本刪除 直接將含有過多缺失值的特徵列刪除 使用sklearn.impute.SimpleImputer將均值、中位數、眾數、常數填補數據 專門用作填補缺失值的類 使用隨機森林回歸填補缺失值

Continue Reading →

機器學習-演算法-隨機森林回歸(RandomForestRegressor)

DecisionTreeClassifier12345class sklearn.ensemble.RandomForestRegressor(n_estimators=’warn’, criterion=’mse’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto’, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False)

Continue Reading →

機器學習-演算法-隨機森林分類(RandomForestClassifier)

Introduction隨機森林是非常具有代表性的Bagging集成演算法 所有的基評估器(base estimator)都是決策樹 單個決策樹的準確率越高,隨機森林的準確率也會越高 Bagging是依賴於平均值或多數決原則來決定集成結果的 DecisionTreeClassifier12345class sklearn.ensemble.RandomForestClassifier(n_estimators=’warn’, criterion=’gini’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto’, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None)

Continue Reading →