91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pipeline處理機制是什么

發布時間:2021-12-27 15:10:04 來源:億速云 閱讀:347 作者:iii 欄目:大數據

本篇內容主要講解“pipeline處理機制是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“pipeline處理機制是什么”吧!

why Pipeline?

你有沒有遇到過這種情況:在機器學習項目中,對訓練集的各種數據預處理操作,比如:特征提取、標準化、主成分分析等,在測試集上要重復使用這些參數。

為了避免重復操作,這里就要用到機器學習中的pipeline機制

按照sklearn官網的解釋 pipeline 有以下妙用:

1、便捷性和封裝性:直接調用fit和predict方法來對pipeline中的所有算法模型進行訓練和預測。 

2、聯合的參數選擇:你可以一次grid search管道中所有評估器的參數。 

3、安全性:訓練轉換器和預測器使用的是相同樣本,管道有助于防止來自測試數據的統計數據泄露到交叉驗證的訓練模型中。

Pipeline的原理

pipeline可以將許多算法模型串聯起來,形成一個典型的機器學習問題工作流。

pipeline處理機制是什么  

Pipeline處理機制就像是把所有模型塞到一個管子里,然后依次對數據進行處理,得到最終的分類結果,

例如模型1可以是一個數據標準化處理,模型2可以是特征選擇模型或者特征提取模型,模型3可以是一個分類器或者預測模型(模型不一定非要三個,根據自己實際需要)。

Pipleline中最后一個之外的所有評估器都必須是變換器,最后一個評估器可以是任意類型(transformer,classifier,regresser),若最后一個評估器是分類器,則整個pipeline就可以作為分類器使用,如果最后一個estimator是個回歸器,則整個pipeline就可以作為回歸器使用。

注:

Estimator:估計器,所有的機器學習算法模型,都被稱為估計器。

Transformer:轉換器,比如標準化。轉換器的輸出可以放入另一個轉換器或估計器中作為輸入。

一個完整的Pipeline步驟舉例:

1.首先對數據進行預處理,比如缺失值的處理

2.數據的標準化

3.降維

4.特征選擇算法

5.分類或者預測或者聚類算法(估計器,estimator)

pipeline處理機制是什么  

實際上,調用pipeline的fit方法,是用前n-1個變換器處理特征,之后傳遞給最后的estimator訓練。pipeline繼承最后一個estimator的所有方法。 

Pipeline的用法

調用方法:

sklearn.pipeline.Pipeline(steps, memory=None, verbose=False)
 

參數詳解:

steps : 步驟:使用(key, value)列表來構建,其中 key 是你給這個步驟起的名字, value 是一個評估器對象。

memory:內存參數,默認None

Pipeline的function

Pipline的方法都是執行各個學習器中對應的方法,如果該學習器沒有該方法,會報錯。假設該Pipline共有n個學習器:

transform:依次執行各個學習器的transform方法

fit:依次對前n-1個學習器執行fit和transform方法,第n個學習器(最后一個學習器)執行fit方法

predict:執行第n個學習器的predict方法

score:執行第n個學習器的score方法

set_params:設置第n個學習器的參數

get_param:獲取第n個學習器的參數 

Pipeline妙用:模塊化Feature Transform

以鳶尾花數據集分類任務為例

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
iris=load_iris()
pipe=Pipeline([('sc', StandardScaler()),('pca',PCA()),('svc',SVC())])
#('sc', StandardScaler()) sc為自定義轉換器名稱,StandardScaler()為執行標準化任務的轉換器
pipe.fit(iris.data,iris.target)
 

先用 StandardScaler 對數據集每一列做標準化處理(transformer)

再用 PCA 主成分分析進行特征降維(transformer)

最后再用 SVC 模型(Estimator)

輸出結果:

Pipeline(memory=None,
         steps=[('sc',
                 StandardScaler(copy=True, with_mean=True, with_std=True)),
                ('pca',
                 PCA(copy=True, iterated_power='auto', n_components=None,
                     random_state=None, svd_solver='auto', tol=0.0,
                     whiten=False)),
                ('svc',
                 SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
                     decision_function_shape='ovr', degree=3,
                     gamma='auto_deprecated', kernel='rbf', max_iter=-1,
                     probability=False, random_state=None, shrinking=True,
                     tol=0.001, verbose=False))],
         verbose=False)
 

訓練得到的是一個模型,可直接用來預測,預測時,數據會從step1開始進行轉換,避免了模型用來預測的數據還要額外寫代碼實現。還可通過pipe.score(X,Y)得到這個模型在X訓練集上的正確率。

array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
  

Pipeline妙用:自動化 Grid Search

Pipeline可以結合GridSearch來對參數進行選擇:

from sklearn.datasets import fetch_20newsgroups
import numpy as np
news = fetch_20newsgroups(subset='all')
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test = train_test_split(news.data[:3000],news.target[:3000],test_size=0.25,random_state=33)
from sklearn.feature_extraction.text import TfidfVectorizer
vec = TfidfVectorizer()
X_count_train = vec.fit_transform(X_train)
X_count_test = vec.transform(X_test)
from sklearn.svm import SVC
from sklearn.pipeline import Pipeline
#使用pipeline簡化系統搭建流程,將文本抽取與分類器模型串聯起來
clf = Pipeline([
    ('vect',TfidfVectorizer(stop_words='english')),('svc',SVC())
])
# 注意,這里經pipeline進行特征處理、SVC模型訓練之后,得到的直接就是訓練好的分類器clf
 
parameters = {
    'svc__gamma':np.logspace(-2,1,4),
    'svc__C':np.logspace(-1,1,3),
    'vect__analyzer':['word']
}
 
#n_jobs=-1代表使用計算機的全部CPU
from sklearn.grid_search import GridSearchCV
gs = GridSearchCV(clf,parameters,verbose=2,refit=True,cv=3,n_jobs=-1)
 
gs.fit(X_train,y_train)
print (gs.best_params_,gs.best_score_)
print (gs.score(X_test,y_test))
 

輸出

{'svc__C': 10.0, 'svc__gamma': 0.1, 'vect__analyzer': 'word'} 0.7906666666666666
0.8226666666666667
   

Pipeline其他用法

Pipeline 還有一些其他用法,這里只簡單介紹最最常用的兩個make_pipeline

pipeline.make_pipeline(\*steps, \*\*kwargs)
 

make_pipeline函數是Pipeline類的簡單實現,只需傳入每個step的類實例即可,不需自己命名,自動將類的小寫設為該step的名。

make_pipeline(StandardScaler(),GaussianNB())
 

輸出

Pipeline(steps=[('standardscaler', StandardScaler(copy=True, with_mean=
True, with_std=True)), ('gaussiannb', GaussianNB(priors=None))])
p=make_pipeline(StandardScaler(),GaussianNB())
p.steps
 

輸出

[('standardscaler', StandardScaler(copy=True, with_mean=True, with_std=True)),
 ('gaussiannb', GaussianNB(priors=None))]
 

FeatureUnion

pipeline.FeatureUnion(transformer_list[, …])
 

FeatureUnion,同樣通過(key,value)對來設置,通過set_params設置參數。不同的是,每一個step分開計算,FeatureUnion最后將它們計算得到的結果合并到一塊,返回的是一個數組,不具備最后一個estimator的方法。有些數據需要標準化,或者取對數,或onehot編碼最后形成多個特征項,再選擇重要特征,這時候FeatureUnion非常管用。

from sklearn.pipeline import FeatureUnion
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import FunctionTransformer
from numpy import log1p

step1=('Standar',StandardScaler())
step2=('ToLog',FunctionTransformer(log1p))
steps=FeatureUnion(transformer_list=[step1,step2])
 
steps.fit_transform(iris.data)
data=steps.fit_transform(iris.data)

到此,相信大家對“pipeline處理機制是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郁南县| 焦作市| 灵川县| 澳门| 凤庆县| 乌拉特前旗| 浦江县| 新余市| 明光市| 英超| 大埔县| 开封市| 萝北县| 新巴尔虎左旗| 陆川县| 余干县| 彭泽县| 阿克陶县| 云南省| 榆树市| 济宁市| 武邑县| 墨脱县| 福建省| 旌德县| 阳春市| 新郑市| 拜泉县| 日喀则市| 柳江县| 双流县| 灵璧县| 万全县| 谢通门县| 泌阳县| 大庆市| 辽宁省| 寻乌县| 兰州市| 石门县| 温泉县|