數據挖掘的步驟——降維處理前一定記得進行無量綱化處理


 

數據挖掘的步驟

  我們使用sklearn進行虛線框內的工作(sklearn也可以進行文本特征提取)。通過分析sklearn源碼,我們可以看到除訓練,預測和評估以外,處理其他工作的類都實現了3個方法:fit、transform和fit_transform。從命名中可以看到,fit_transform方法是先調用fit然后調用transform,我們只需要關注fit方法和transform方法即可。

  transform方法主要用來對特征進行轉換。從可利用信息的角度來說,轉換分為無信息轉換和有信息轉換。無信息轉換是指不利用任何其他信息進行轉換,比如指數、對數函數轉換等。有信息轉換從是否利用目標值向量又可分為無監督轉換和有監督轉換。無監督轉換指只利用特征的統計信息的轉換,統計信息包括均值、標准差、邊界等等,比如標准化、PCA法降維等。有監督轉換指既利用了特征信息又利用了目標值信息的轉換,比如通過模型選擇特征、LDA法降維等。通過總結常用的轉換類,我們得到下表:

參數列表 類別 fit方法有用 說明
sklearn.preprocessing StandardScaler 特征 無監督 Y 標准化
sklearn.preprocessing MinMaxScaler 特征 無監督 Y 區間縮放
sklearn.preprocessing Normalizer 特征 無信息 N 歸一化
sklearn.preprocessing Binarizer 特征 無信息 N 定量特征二值化
sklearn.preprocessing OneHotEncoder 特征 無監督 Y 定性特征編碼
sklearn.preprocessing Imputer 特征 無監督 Y 缺失值計算
sklearn.preprocessing PolynomialFeatures 特征 無信息 N 多項式變換(fit方法僅僅生成了多項式的表達式)
sklearn.preprocessing FunctionTransformer 特征 無信息 N 自定義函數變換(自定義函數在transform方法中調用)
sklearn.feature_selection VarianceThreshold 特征 無監督 Y 方差選擇法
sklearn.feature_selection SelectKBest 特征/特征+目標值 無監督/有監督 Y 自定義特征評分選擇法
sklearn.feature_selection SelectKBest+chi2 特征+目標值 有監督 Y 卡方檢驗選擇法
sklearn.feature_selection RFE 特征+目標值 有監督 Y 遞歸特征消除法
sklearn.feature_selection SelectFromModel 特征+目標值 有監督 Y 自定義模型訓練選擇法
sklearn.decomposition PCA 特征 無監督 Y PCA降維
sklearn.lda LDA 特征+目標值 有監督 Y LDA降維

示例代碼:

StandardScaler, PCA, LogisticRegression 運用管道連接起來

 
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline

pipe_lr = make_pipeline(StandardScaler(),
PCA(n_components=2),
LogisticRegression(random_state=1))
pipe_lr.fit(X_train, y_train)
y_pred = pipe_lr.predict(X_test)
print('Test Accuracy: %.3f' % pipe_lr.score(X_test, y_test))
Test Accuracy: 0.956

可以把 Pipeline 當作對這些轉化器(trainsformers)和估算器(estimators)的封裝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM