1. 程式人生 > 其它 >學習筆記:SciKit-Learn

學習筆記:SciKit-Learn

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 PCA
from 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_pipeline
from 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