學習筆記:SciKit-Learn
阿新 • • 發佈:2021-07-21
transformer
sklearn.preprocessing.MinMaxScaler()
sklearn.preprocessing.StandardScaler()
sklearn.preprocessing.OneHotEncoder()
sklearn.preprocessing.RobustScaler()
OneHotEncoder(n_values=’auto’) # 表示每個特徵使用幾維的數值由資料集自動推斷,即幾種類別就使用幾位來表示
OneHotEncoder(n_values = [2, 3, 4]) # 表示指定每個特徵使用的維數(用於訓練集中有類別丟失的情況)
classifier
regressor
Pipeline
(1)序列化用法:通過steps引數,設定資料處理流程。格式為('key','value'),key是自己為這一step設定的名稱,value是對應的處理類。最後通過list將這些step傳入。前n-1個step中的類都必須有transform函式,最後一步可有可無,一般最後一步為模型。使用最簡單的iris資料集來舉例:
from sklearn.pipeline import Pipeline from sklearn.svm import SVC from sklearn.decomposition import PCAfrom sklearn.datasets import load_iris iris = load_iris() pipe = Pipeline(steps=[('pca',PCA()),('svc',SVC())]) pipe.fit(iris.data, iris.target)
(2)通過make_pipeline函式實現:它是Pipeline類的簡單實現,只需傳入每個step的類例項即可,不需自己命名,自動將類的小寫設為該step的名:
from sklearn.linear_model import Lasso from sklearn.pipeline import make_pipelinefrom sklearn.preprocessing import RobustScaler pipe = make_pipeline(RobustScaler(), Lasso(alpha =0.0005, random_state=1))
同時可以通過set_params重新設定每個類裡邊需傳入的引數,設定方法為set_param(step's name__parma=引數值):
pipe.set_params(lasso__alpha=0.0001) # 將alpha從0.0005變成0.0001