2023年scikitlearn學(xué)習(xí)主要知識點(diǎn)_第1頁
2023年scikitlearn學(xué)習(xí)主要知識點(diǎn)_第2頁
2023年scikitlearn學(xué)習(xí)主要知識點(diǎn)_第3頁
2023年scikitlearn學(xué)習(xí)主要知識點(diǎn)_第4頁
2023年scikitlearn學(xué)習(xí)主要知識點(diǎn)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

簡介:避誤!未定義書簽。

重要特點(diǎn):......................................................錯(cuò)誤!未定義書簽。

scikit-leam安裝:(ubuntu版本14.04.1)..........................................錯(cuò)誤!未定義書簽。

Classificatiom錯(cuò)誤!未定義書簽。

1.監(jiān)督學(xué)習(xí).........................................錯(cuò)誤!未定義書簽。

1.1廣義線性模型:.............................錯(cuò)誤!未定義書簽。

1.2支持向量機(jī)避誤!未定義書簽。

1.3隨機(jī)梯度下降。錯(cuò)誤!未定義書簽。

1.4最近鄰.....................................錯(cuò)誤!未定義書簽。

1.5GaussianProcesses。錯(cuò)誤!未定義書簽。

1.6Crossdecomposition..........................................錯(cuò)誤!未定義書簽。

1.7NaiveBayes嘴誤!未定義書簽。

1.8DecisionTrees....................................................錯(cuò)誤!未定義書簽。

1.9Ensemblemethods。錯(cuò)誤!未定義書簽。

1.10Multiclassandmu1tilabe1algorithms。錯(cuò)誤!未定義書簽。

1.11Featureselection..................................................錯(cuò)誤!未定義書簽。

1.14Isotonicregression..................................錯(cuò)誤!未定義書簽。

2.。錯(cuò)誤!未定義書簽。

2.3Clustering...............................................................錯(cuò)誤!未定義書簽。

2.5Decomposingsignalsincomponents(matrixfactor

izationproblemsg錯(cuò)誤!未定義書簽。

3.Modelse1ectionandeva1uation。錯(cuò)誤!未定義書簽。

3.1Cross-validation:eva1uatingestimatorperformance..46

3.2GridSearch:Searchingforestimatorparameters儲(chǔ)誤!未

定義書簽。

3.3Pipeline:chainingestimators。錯(cuò)誤!未定義書簽。

3.4FeatureUnion:Combiningfeatureextractors。錯(cuò)誤!未定義

書簽。

3.5.Modelevaluation:quantifyingthequa1ityofprediction

s.............................................................................................錯(cuò)誤!未定義書簽。

3.6.Modelpersistence...........................................................................62

3.7.Va1idationcurves:p1ottingscorestoevaluatemodels錯(cuò)誤!未定義書簽。

4.。錯(cuò)誤!未定義書簽。

4.2Preprocessingdata。錯(cuò)誤!未定義書簽。

4.4RandomProjection..........................................錯(cuò)誤!未定義書簽。

簡介:

scikit-learn是一個(gè)用于機(jī)器學(xué)習(xí)的Python模塊,建立在SciPy基礎(chǔ)之上。

重要特點(diǎn):

操作簡樸、高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析

無訪問限制,在任何情況下可重新使用

建立在NumPy、SciPy和matplot1ib基礎(chǔ)上

使用商業(yè)開源協(xié)議一一BSD許可證

scikiearn安裝:(ubuntu版本

14.04.1)

安裝依賴:

sudoapt-getinsta11buiId—essentia1python-devpython-numpypython-s

etuptoolspython-scipylibat1as-devlibat1as3-basepython-matplotlib

安裝Pip

sudoapt-getinstallpython-pip

安裝scikit-1earn

sudopipinstall-Uscikit-1earn

標(biāo)準(zhǔn)庫

Classification

1.監(jiān)督學(xué)習(xí)

1.1廣義線性模型:

1.1.1普通最小二乘法:

無偏估計(jì)的

通過計(jì)算最小二乘的損失函數(shù)的最小值來求得參數(shù)得出模型

通常用在觀測有誤差的情況,解決線性回歸問題

A

嗎%+....+

y(w,x)=w()+wpxp

求實(shí)際觀測值與預(yù)測值差的平方最小值

數(shù)學(xué)公式:min|xw-y|;

W

是由sklearn.linear_mode1模塊中的LinearRegression類實(shí)現(xiàn)回歸

LinearRegression的構(gòu)造方法:

osklearn.linear_model.LinearRegression(fit_intercept=True#默認(rèn)值為True,

表達(dá)計(jì)算隨機(jī)變量,Fa1se表達(dá)不計(jì)算隨機(jī)變量

,normalize=False#默認(rèn)值

為False,表達(dá)在回歸前是否對回歸因子X進(jìn)行歸一化,True表達(dá)是

°o,copy_X=True)

oLinearRegression的屬性有:coef_和intercept—。coef_存儲(chǔ)叫到卬〃的值,與X的

維數(shù)一致。intercept—存儲(chǔ)嗎的值。

LinearRegression的常用方法有:

decision_function(X)#返回X的預(yù)測值y

fit(X,y[,n_jobs])#擬合模型

get_params([deep])#獲取LinearRegression構(gòu)造方法的參

數(shù)信息

prediet(X)#求預(yù)測值#同decision_function

((y,-yy}

core(X,y[,samp1e_weight])#計(jì)算公式為1---——一ry

、trueytruemean),

oset_params(**params)#設(shè)立LinearRegression構(gòu)造方法

的參數(shù)值

參考示例:

fromskiearnimportlinear_model

X=L[0,0],[1,1J,[2,2J]

y=[o,1,2]

elf=linear_model.LinearRegression()

elf.fit(X,y)

printclf.coefL

ercept_

printcIf.predict([[3,3]])

printelf.decision_function(X)

printelf.score(X,y)

printcIf.get_params()

printclf.set_params(fit_intercept=FaIse)

普通最小二乘法的復(fù)雜性:

假設(shè)影響因素X為一個(gè)n行P列的矩陣那么其算法復(fù)雜度為假設(shè)nNP

缺陷:規(guī)定每個(gè)影響因素互相獨(dú)立,否則會(huì)出現(xiàn)隨機(jī)誤差。

回歸用于解決預(yù)測值問題

1.1.2Ridge回歸

有偏估計(jì)的,回歸系數(shù)更符合實(shí)際、更可靠,對病態(tài)數(shù)據(jù)的擬合要強(qiáng)于最小二乘

教學(xué)八式哽1區(qū)。|;+刎/

數(shù)學(xué)公式:4

。>=0,a越大,w值越趨于一致

改良的最小二乘法,增長系數(shù)的平方和項(xiàng)和調(diào)整參數(shù)的積

是由skiearn.1inear_mode1模塊中的Ridge類實(shí)現(xiàn)

Ridge回歸用于解決兩類問題:一是樣本少于變量個(gè)數(shù),二是變量間存在共線性

Ridge的構(gòu)造方法:

sk1earn.linear_mode1.Ridge(alpha=1.0#公式中a的值,默認(rèn)

為1.0

。o,fit_intercept=True

,norma1ize=False

g,copy_X=True

*max_iter=None#共扼梯度求解器的最大迭代次數(shù)

tol=0.001J#默認(rèn)值0.001

。ssoIver=zaut)#

Ridge回歸復(fù)雜性:同最小二乘法

使用:

fromsk1earnimport1inear_model

x=[[0,0J,El,1],[2,2]]

y=[0,1,2]

c1f=linear_modeI.Ridge(alpha=0.1)

c1f.fit(X,y)

printclf.coef_

ercept_

printelf.predict([[3,3]])

printc1f.decision_function(X)

printclf.score(X,y)

printc1f.get_params()

printelf.set_params(fit_intercept=Fa1se)

調(diào)整參數(shù)設(shè)立):通過廣義交叉驗(yàn)證的方式(RidgeCV)設(shè)立調(diào)整參數(shù)

RidgeCV構(gòu)造方法:

?sklearn.linear_model.RidgeCV(alphas=array([0,1,1.,10.])

,fit_intercept=True

,normalize=False

ri#交叉驗(yàn)證發(fā)生器

,cv=None

,gcvmode=None

。。。,store_cv_values=Fa1se)

使用示例:

fromsk1earnimportlinear_mode1

x=IL0,0],[1,1],[2,2]]

y=[0,1,2]

cIf=linear_model.RidgeCV(alpha=[0.1,1.0,10.01)

clf.fit(X,y)

printelf.coef_

ercept_

printclf.predict([[3,3]])

printelf.decision_function(X)

printelf.score(X,y)

printc1f.get_params()

printc1f.set_params(fit_intercept=False)

1.1.3Lasso

呼57^—陽,-玳+a|Hi

數(shù)學(xué)公式:^samples

估計(jì)稀疏系數(shù)的線性模型

合用于參數(shù)少的情況,因其產(chǎn)生稀疏矩陣,可用與特性提取

實(shí)現(xiàn)類是Lasso,此類用于監(jiān)督分類

較好的解決回歸分析中的多重共線性問題

思想:在回歸系數(shù)的絕對值之和小于一個(gè)常數(shù)的約束條件下,使殘差平方和最小化

使用:elf=linear_model.Lasso(alpha=0.1)

設(shè)立調(diào)整參數(shù)):

交叉驗(yàn)證:LassoCV(合用于高維數(shù)據(jù)集)或LassoLarsCV(適合于樣本數(shù)據(jù)比

觀測數(shù)據(jù)小很多)

?;谀J竭x擇的信息標(biāo)準(zhǔn):LassoLarsIC(BIC/AIC)

1.1.4ElasticNet

是一個(gè)使用L1和L2訓(xùn)練的線性模型,適合于在參數(shù)很少的情況下(如Lasso)并保持R

idge性能的情況,既是多種影響因素依賴與此外一種因素。繼承Ridge的旋轉(zhuǎn)穩(wěn)定性。

呼-因,-玳+空帆+°";01嘛

數(shù)學(xué)表達(dá)式:samples乙

fromsk1earn.linear_mode1importElasticNetjenet=ElasticNet(alpha=alph

a,ll_ratio=0.7)

求取a和P的值使用E1asticNetCV

1.1.5Multi-taskLasso

用于估計(jì)y值不是一元的回歸問題

用于估計(jì)聯(lián)合多元回歸問題的稀疏系數(shù),y是一個(gè)2維矩陣(n_samp1es,n_tasks)?對于

所有的回歸問題,選的的因素必須相同,也叫tasks。

使用:clf=1inear_mode1.MuItiTaskLasso(a1pha=O.l)

1.1.6LeastAng1eRegression

是一個(gè)計(jì)算高維數(shù)據(jù)的回歸算法。實(shí)現(xiàn)類是sklearn.linear_model中的Lars類

優(yōu)點(diǎn):

當(dāng)維數(shù)大于點(diǎn)數(shù)的時(shí)候在上下文中是有效的

。復(fù)雜度和最小二乘相同,但計(jì)算不久

產(chǎn)生一個(gè)分片解決方案途徑用于交叉驗(yàn)證或相似的調(diào)整模型方法

。假如兩個(gè)變量響應(yīng)相關(guān),則會(huì)有相同的增長率

。很融合修改變成其他的評估方法

缺陷:

噪聲敏感

使用:elf=linear_mode1.Lars(n_nonzero_coefs=1)

1.1.7LARSLasso

是一個(gè)使用LARS算法實(shí)現(xiàn)的lasso模型。

使用:cIf=1inear__model.LassoLars(alpha=0.01)

1.1.8OMP(OrthogonalMatchingPursuit)

通過固定的非零元素?cái)?shù)得到最優(yōu)解

OMP基于貪心算法實(shí)現(xiàn),每一步的原子項(xiàng)都與殘余高度相關(guān)。

使用:

omp=OrthogonalMatchingPursuit(n_nonzero_coefs=n_nonzero_coefs)

omp_cv=OrthogonaIMatchingPursuitCV()

1.1.9貝葉斯回歸(BayesianRegression)

可以再估計(jì)過程包含正則化參數(shù),參數(shù)可以手動(dòng)設(shè)立,用于估計(jì)概率回歸問題

優(yōu)點(diǎn):

合用于手邊數(shù)據(jù)

可用于在估計(jì)過程中包含正規(guī)化參數(shù)

缺陷:

。耗時(shí)

BayesianRidgeRegression:BayesianRidge用于估計(jì)回歸問題的概率模型

。用法:elf=linear_mode1.BayesianRidge()Bydefault

ftl=Q9=Ai==1.6一。

ARD(AutomaticReievanceDetermination):類彳以于BayesianRidgeRegression,但可

產(chǎn)生稀疏的w值

用法:elf=ARDRegression(compute_score=T

rue)

1.1.10邏輯回歸

可以做概率預(yù)測,也可用于分類

僅能用于線性問題

通過計(jì)算真實(shí)值與預(yù)測值的概率,然后變換成損失函數(shù),求損失函數(shù)最小值來計(jì)算模型參數(shù)從

而得出模型

使用:

℃1f_11_LR=LogisticRegression(C=C,penaIty_11to1-0.01)

?clf_12_LR=LogisticRegression(C=C,penalty='12',tol=0.01)

clL11_LR,fit(X,y)

clf_12_LR.fit(X,y)

1.1.11SGD(StochasticGradientDescent)

用于樣本數(shù)據(jù)非常大的情況

由SGDC1assifier和SGDRegressor

使用:

elf=1inear_model.SGDRegressor()

c1f=linear_model.SGDClassifier()

對于SGDClassifier,當(dāng)loss=''k>g”時(shí)擬合成一個(gè)邏輯回歸模型,當(dāng)1oss="hinge”

時(shí)擬合成一個(gè)線性支持向量機(jī)

1.1.12Perceptron

是另一個(gè)大規(guī)模學(xué)習(xí)的算法

不需要學(xué)習(xí)率

不是正則的

只有錯(cuò)誤的時(shí)候更新模型

使用:同SGDClassifier

1.1.13PassiveAggressiveAlgorithms

不規(guī)定學(xué)習(xí)率的時(shí)候同Perceptron,與Perceptron不同的是包含正則參數(shù)C

使用:同SGDCIassifier

1.1.14RANSAC(RANdomSAmpleConsensus)

是一個(gè)從完整數(shù)據(jù)集中的一個(gè)子集中健壯估計(jì)參數(shù)的迭代算法,是非擬定性算法,此算法把數(shù)

據(jù)提成很多子集,根據(jù)子集估計(jì)

算法環(huán)節(jié):

(1)從原始數(shù)據(jù)中選擇最小的隨機(jī)樣本,并檢查數(shù)據(jù)時(shí)候有效(is_data_valid)

。(2)根據(jù)⑴的隨機(jī)子集擬合模型(base_estimator.fit),并檢查模型是否有效(is

_model_va1id)

(3)通過計(jì)算估計(jì)模型的方法來分類數(shù)據(jù)

(4)假如臨近樣本數(shù)是最大的,并且當(dāng)前的評估模型有同樣的數(shù)則保存模型為

最優(yōu)模型。

使用:model_ransac=1inear_model.RANSACRegressor(linear_model.LinearR

egression())

1.1.15多項(xiàng)式回歸

機(jī)器學(xué)習(xí)中的常見模式,使用線性模型訓(xùn)練數(shù)據(jù)的非線性函數(shù)

1.2支持向量機(jī)

擬合出來的模型為一個(gè)超平面

解決與樣本維數(shù)無關(guān),適合做文本分類

解決小樣本、非線性、高維

是用于分類、回歸、孤立點(diǎn)檢測的監(jiān)督學(xué)習(xí)方法的集合。

優(yōu)點(diǎn):

。有效的高維空間

。維數(shù)大于樣本數(shù)的時(shí)候仍然有效

。在決策函數(shù)中使用訓(xùn)練函數(shù)的子集

。通用(支持不同的內(nèi)核函數(shù):線性、多項(xiàng)式、S型等)

缺陷:

。不合用于特性數(shù)遠(yuǎn)大于樣本數(shù)的情況

不直接提供概率估計(jì)

接受稠密和稀疏的輸入

1.2.1C1assification

由SVC、NuSVC或LinearSVC實(shí)現(xiàn),可進(jìn)行多類分類

LinearSVC只支持線性分類

SVC和NuSVC實(shí)現(xiàn)一對一,LinearSVC實(shí)現(xiàn)一對多

使用:

?clf=svm.SVC()

lin_cIf=svm.LinearSVC()

SVCXuSVC和LinearSVC均無supporl_>supporl_vectors_fHn_snpport」,性

1.2.2回歸

支持向量分類的方法也支持向量回歸,有SVR和NuSVR,同分類同樣,只是y向量需要是浮

點(diǎn)數(shù)

使用:clf=svm.SVR()

1.2.3Densityestimation,noveItydetection

由OneClassSVM實(shí)現(xiàn),是非監(jiān)督學(xué)習(xí),只需要一個(gè)X矩陣,沒有類標(biāo)簽

1.2.4Complexity

‘力"/eats"X〃.ampg)and

1.3隨機(jī)梯度下降

應(yīng)用于大量稀疏的機(jī)器學(xué)習(xí)問題,輸入數(shù)據(jù)為稀疏的

常用于文本分類和自然語言解決

是解決大樣本數(shù)據(jù)的非常有效的方法

優(yōu)點(diǎn):

高效

。易于實(shí)行

缺陷:

需要一些調(diào)整參數(shù)

。對尺度特性敏感

1.3.1Classification

使用SGDClassifier實(shí)現(xiàn),擬合參數(shù)為X[n_samples,n_features]和y[N_samp1es]

可以實(shí)現(xiàn)多類分類,此時(shí)是通過多個(gè)binary分類實(shí)現(xiàn)實(shí)現(xiàn)方式是one—vs-a11(0VA),

每一個(gè)binary分類把其中一個(gè)分出來,剩下的作為一個(gè)。測試的時(shí)候計(jì)算每一個(gè)分類器的

得分并選擇得分最高的

1.3.2Regression

由SGDRegressor實(shí)現(xiàn)

1.3.3復(fù)雜度

x為(n,p),則復(fù)雜度為0(%〃P)

1.4最近鄰

無監(jiān)督的最近鄰是其他學(xué)習(xí)方法的基礎(chǔ),監(jiān)督的近鄰學(xué)習(xí)分為:分類(數(shù)據(jù)有離散標(biāo)記)和

回歸(數(shù)據(jù)有連續(xù)標(biāo)記)

最近鄰分類:計(jì)算待分類樣本與訓(xùn)練樣本中各個(gè)類的距離,求出距離最小的

K緊鄰是求出k個(gè)最小的,然后計(jì)算分別屬于某一類的個(gè)數(shù),選個(gè)數(shù)最大的類,若相等則選擇

跟訓(xùn)練集中的序列有關(guān)

近鄰分類:解決離散數(shù)據(jù)

近鄰回歸:解決連續(xù)數(shù)據(jù)

1.4.1無監(jiān)督的最近鄰

由NearestNeighbors實(shí)現(xiàn),在sklearn.neighbors中,有三種算法:ba11_tree(Bal1

Tree)、kd_tree(KDTree)>brute(brute-force)>auto(默認(rèn))

fromskiearn.neighborsimportNearestNeighbors

skiearn,neighbors.NearestNeighbors(n_neighbors=5#鄰居數(shù),默認(rèn)為5

,radius=l.0#參數(shù)空間范圍,默認(rèn)值為1.0

,a1gorithm=,auto'#用于計(jì)算最近鄰的算法(ba11

—tree、kd_tree>brute、auto)

,leaLsize=30#傳遞給Ba1ITree或KDT

ree葉大小

,metric=*minkowski,

,p=2

,metric_params=None

,**kwargs)

使用:

mbrs=NearestNeighbors(n_neighbors=2,a1gorithm='bal1_tr

ee').fit(X)

distances,indices=nbrs.kneighbors(X)

KDTreeandBa1ITree

使用:

X=np.array([[-1,-1],[-2,-1],[-3,-2],[1,1],[2,1],[3,2]])

kdt=KDTree(X,leaf_size=30,metric='euclidean')

kdt.query(X,k=2,return_distance=FaIse)

BallTree用法同KDTree

1.4.2最近鄰分類

是基于實(shí)例的非泛華學(xué)習(xí),有兩種不同的最近鄰分類:KNeighborsClassijfier和Radi

usNeighborsClassifier(非均勻采樣時(shí)比較合適)

1<^018岫02。2551加1':實(shí)現(xiàn)卜近鄰,k是一個(gè)用戶輸入的整數(shù),k高度依賴與數(shù)據(jù)

sklearn.neighbors.KNeighborsClassifier(n—neighbors=5#鄰居數(shù),默

認(rèn)為5

,weights='uniform'#用于預(yù)測的權(quán)重方法

a1gorithm='auto,#用于計(jì)算最近鄰的算

法(ball_tree>kd_tree>brute、auto

leafLsize=30#傳遞給Bal1T

ree或KDTree葉大小

,P=2?

,metric-minkowski*#用于樹的度量距離

,metric_params=None#度量參數(shù)

,**kwargs)

使用:

fromskiearn.neighborsimportKNeighborsClassifier

neigh=KNeighborsClassifier(n_neighbors=3)

neigh.fit(X,y)

RadiusNeighborsClassifier:實(shí)現(xiàn)基于給定的半徑r內(nèi)的鄰居數(shù)。用于不是均勻采樣的數(shù)

據(jù),不適合高維參數(shù)空間的數(shù)據(jù)

sklearn.neighbors.RadiusNeighborsC1assifier(radius=1.0

,weighis-uniform1#參數(shù)空間范圍

,algorithm='auto*#用于計(jì)算最近鄰的算法

(ba11_tree>kd_tree>brute>auto)

,leaf_size=30并傳遞給BallT

ree或KDTree葉大小

P=2

,metric='minkowski'#用于樹的度

量距離

,outlier_label=None#離散群體的標(biāo)簽

,metric_params=None#度量參數(shù)

**kwargs)

使用:

fromsklearn.neighborsimportRadiusNeighborsClassifier

oneigh=RadiusNeighborsClassifier(radius=1.0)

neigh.fil(X,y)

1.4.3近鄰回歸

近鄰回歸用于標(biāo)記數(shù)據(jù)是連續(xù)的情況,有兩種不同的最近鄰分類:KNeighborsRegressor

和RadiusNeighborsRegressor

KNeighborsRegresso亡實(shí)現(xiàn)k近鄰,k是一個(gè)用戶輸入的整數(shù)

sklearn.neighbors.KNeighborsRegressor(n_neighbors=5井鄰居

數(shù),默認(rèn)為5

,weights=*uniform,#用于預(yù)測的權(quán)重方法

,a1gorithm=,auto#用于計(jì)算最近

鄰的算法(ba11」ree、kd_tree>brute>auto)

,leaCsize=30#傳遞給BallTree或KDTr

ee葉大小

P=2#

,metric=,minkowski'#用于樹的度量距離

,metric_params=None#度量參數(shù)

,**kwargs)

使用:

ofromsklearn.neighborsimportKNeighborsRegressor

oneigh=KNeighborsRegressor(n_neighbors=3)

neigh.fit(X,y)

RadiusNeighborsRegressor:實(shí)現(xiàn)基于給定的半徑r內(nèi)的鄰居數(shù)。

sklearn.neighbors.RadiusNeighborsRegressor(radius=1.0

,weights='uniform1#參數(shù)空間范圍

,algorithm-auto7#用于計(jì)算最近鄰

的算法(ball」ree、kd_tree、brute>auto)

1eafLsize=30#傳遞給BallTree或KD

Tree葉大小

,P=2

,metric-minkowski'#用于樹的度量距離

,outlier_1abel=None#離散群體的

標(biāo)簽

,metric_params=None#度量參數(shù)

,**kwargs)

使用:

afromsk1earn.neighborsimportRadiusNeighborsRegressor

neigh=RadiusNeighborsRegressor(radius=1.0)

neigh,fit(X,y)

1.4.4最近鄰算法

BruteForce

搜索時(shí)通過sklearn.neighbors中的a1gorithm參數(shù)設(shè)立為,brute,實(shí)現(xiàn),計(jì)算是

通過sklearn.metrics.pairwise

此種方法計(jì)算效率低,D維空間的N個(gè)樣本時(shí)間復(fù)雜度為

1.4,4.2K-DTree

為了解決BruteForce計(jì)算效率低的問題,通過減少計(jì)算距離所需的數(shù)據(jù)實(shí)現(xiàn),思想是:假如

A距離B非常遠(yuǎn),B距離C非常近,那么認(rèn)為A與C距離非常遠(yuǎn)而不需要進(jìn)行計(jì)算。相比于

BruteForce,時(shí)間復(fù)雜度減少為心或、)1,但高維數(shù)據(jù)空間效率低

BallTree

解決K-DTree高維空間效率低的問題

最近鄰算法選擇

N為樣本數(shù),D為維數(shù),k表達(dá)鄰居數(shù)

當(dāng)N《=30的時(shí)候選擇BruleForce比較合適

數(shù)據(jù)集結(jié)構(gòu)化的時(shí)候,選擇K-DTree或K-DTree

當(dāng)k相稱于與N來說變得非常大時(shí)選擇BruteForce

假如查詢點(diǎn)數(shù)少時(shí)BruteForce

1eaCsize的影響

1)影響構(gòu)建樹的時(shí)間,leaf_size越大,構(gòu)建樹時(shí)間越短

2)影響查詢時(shí)間,1eaf_size最合適的值為30

3)影響內(nèi)存,隨著leaf_size的增大,存儲(chǔ)內(nèi)存減小

1.4.5NearestCentroidClassifier

構(gòu)造方法:sklearn.neighbors.NearestCentroid(metric='eudidean'

,shrink_thresho1d=None)

用法:

X=np.array([[-1,-1],[-2,-IJ,[-3,-2],[1,1],[2,1],

[3,21])

y=np.array([1,1,1,2,2.2])

?clf=NearestCentroid()

。clf.fit(X,y)

1.5GaussianProcesses

GPML是一種監(jiān)督學(xué)習(xí)方法,重要用于解決回歸問題,已經(jīng)擴(kuò)展到概率分類,但目前的

研究只是一個(gè)回歸練習(xí)的后解決

優(yōu)點(diǎn):

預(yù)測插值觀測

。預(yù)測是概率的,可以預(yù)測經(jīng)驗(yàn)置信空間,改變預(yù)測值

通用

缺陷:

非離散

高維空間效率低

分類僅僅是一個(gè)后解決

實(shí)現(xiàn)類是GaussianProcess

構(gòu)造方法:sk1earn.gaussian_process.GaussianProcess(regr="constant

#回歸函數(shù)返回信息

。。,cor^'squared-exponential'#自相關(guān)信息

,beta0=None川#回歸權(quán)重向量

,storage_mode=Yul1*

,verbose=Fa1se

,thetaO=0.1

,thetaL=None

,thetaU=None

,optimizer='fmin_cobyla'

,random_start=1

,normalize=True

,nugget=2.3131e—15

,random_state=None)

使用:

importnumpyasnp

fromsklearn.gaussian_processimportGaussianProcess

X=np.array([[1.,3.,5,,6.,78.]]).T

呼=(Xnp.sin(X)).ravel()

gp=GaussianProcess(theta0=0.1,thetaL=.001,thetaU=l.)

ogp.fit(X,y)

1.6Crossdecomposition

涉及兩類算法PLS和CCA,用于計(jì)算兩個(gè)多變數(shù)據(jù)集的線性相關(guān),需要擬合的多變集X和

Y是2D數(shù)組

當(dāng)預(yù)測矩陣比實(shí)際數(shù)據(jù)有更多的變量時(shí)適合用PLS

1.7NaiveBayes

NaiveBayes方法是監(jiān)督學(xué)習(xí)的集合基于假設(shè)每對特性之間都是獨(dú)立的貝葉斯理論

樸素貝葉斯方法是基于貝葉斯理論并假設(shè)每個(gè)特性都是獨(dú)立的

應(yīng)用于文檔分類和垃圾郵件過濾

需要訓(xùn)練數(shù)據(jù)比較少

樸素貝葉斯通過計(jì)算屬于每個(gè)類的概率并取概率最大的類作為預(yù)測類

naiveBayesisadecentclassifier,butabadestimator

1.7.1GaussianNaiveBayes

實(shí)現(xiàn)分類的是高斯貝葉斯算法是實(shí)現(xiàn)類GaussianNB

構(gòu)造方法:sklearn.naive_bayes.GaussianNB

GaussianNB類構(gòu)造方法無參數(shù),屬性值有:

eclass_prior_#每一個(gè)類的概率

theta_#每個(gè)類中各個(gè)特性的平均

。sigma_#每個(gè)類中各個(gè)特性的方差

示例:

importnumpyasnp

x=np.array([[-1,-1],[-2,-1],[-3,-2],[1,1],[2,1],[3,2]])

Y=np.array([l,1,1,2,2,2])

fromskleam.naive_bayesimportGaussianNB

cIf=GaussianNB()

clf.fit(X,Y)

GaussianNB類無score方法

1.7.2MultinomialNaiveBayes

用于文本分類

用于解決多項(xiàng)離散數(shù)據(jù)集的NaiveBayes算法的類是MultinomiaINB

構(gòu)造方法:sk1earn.naive_bayes.MuitinomialNB(a1pha=1.0#平滑

參數(shù)

。。。,fit_prior=True#學(xué)習(xí)類的先驗(yàn)概率

。。,c1ass_prior=None)#類的先驗(yàn)概率

示例:

importnumpyasnp

X=np.random.randint(5,size=(6,100))

y=np.array([l,2,3,4,5,6])

fromsklearn.naive_bayesimportMuItinomialNB

clf=Mu1tinomialNB()

clf.fit(X,y)

1.7.3Bemoul1iNaiveBayes

解決根據(jù)muItivariateBernoulli離散的訓(xùn)練和分類數(shù)據(jù)算法,實(shí)現(xiàn)類是Bernou1liNB

構(gòu)造方法:sklearn.naive_bayes.Bernou1liNB(aIpha=1.0

#平滑參數(shù)

。,binarize=0.0。曲樣本特性閾值二值比

,fit_prior=True#學(xué)習(xí)類的先驗(yàn)概

,class_prior=None)#類的先驗(yàn)概率

示例:

importnumpyasnp

X=np.random.randint(2,size=(6,100))

Y=np.array([1,2,3,4,4,5])

fromsklearn.naive_bayesimportBemou1liNB

clf=BernoulliNB()

clf.fit(X,Y)

1.8DecisionTrees

是一個(gè)無參數(shù)的分類和回歸的監(jiān)督學(xué)習(xí)方法,目的是創(chuàng)建一個(gè)模型用于預(yù)測目的變量的值,通

過學(xué)習(xí)從數(shù)據(jù)特性中推斷出來的簡樸規(guī)則。

優(yōu)點(diǎn):

。易于理解

只需要很少的準(zhǔn)備數(shù)據(jù)

復(fù)雜度是數(shù)據(jù)點(diǎn)數(shù)的對數(shù)

可以同時(shí)解決數(shù)值和分類數(shù)據(jù)

??梢越鉀Q多輸出問題

。采用白盒模型

。使用記錄測試可以驗(yàn)證模型

即使假設(shè)有點(diǎn)錯(cuò)誤也可以表現(xiàn)很好

缺陷:

可以創(chuàng)建復(fù)雜樹但不能很好的推廣

。不穩(wěn)定

是NP問題

。有很難學(xué)習(xí)的概念

假如一些類占主導(dǎo)地位創(chuàng)建的樹就有偏差

1.8.1分類

實(shí)現(xiàn)類是DecisionTreeClassifier,可以執(zhí)行數(shù)據(jù)集的多類分類

輸入?yún)?shù)為兩個(gè)數(shù)組X[n_samp1es,n_features]和y[n—samples],X為訓(xùn)練數(shù)據(jù),y為

訓(xùn)練數(shù)據(jù)的標(biāo)記數(shù)據(jù)

DecisionTreeClassifier構(gòu)造方法為:

?sk1earn.tree.DecisionTreeClassifier(criterion=rgini'

。,splitter='best*

。。,max_depth=None

“g,min_samples_sp1it=2

,min_samp1es_leaf=1

,max_features=None

。?,random_state=None

。。。,min_density=None

。。,compute_importances=None

o,max_leafLnodes=None)

DecisionTreeClassifier示例:

fromsklearnimporttree

x=[[0,0],[1,1]]

Y=[0,1]

elf=tree.DecisionTreeC1assifier()

clf=c1f.fit(X,Y)

1.8.2回歸

實(shí)現(xiàn)類是DecisionTreeRegressor,輸入為X,y同上,y為浮點(diǎn)數(shù)

DecisionTreeRegressor構(gòu)造方法為:

。sklearn.tree.DecisionTreeRegressor(criterion='mse'

*,splitter=,best1

。。,max_depth=None

,min_samples_split=2

。,min_samples_leaf=1

》,max_features=None

,random_state=None

,min_density=None

,compute_importances=None

,max_leaf_nodes=None)

DecisionTreeRegressor示例:

fromsklearnimporttree

x=L[0,0],[2,2]]

y=[0.5,2.5]

elf=tree.DecisionTreeRegressor()

clf=cIf.fit(X,y)

cIf.predict([[1,1]])

1.8.3多輸出問題

實(shí)現(xiàn)類有:DecisionTreeClassifier和DecisionTreeRegressor.

DecisionTreeClassifier構(gòu)造方法:

sk1earn.tree.DecisionTreeClassifier(criterion='gini'

,splitter=,best7

,max_depth=None

,min_samples_sp1it=2

,min_samples_1eaf=l

,max_features=None

,random_state=None

,min_density=None

,compute_importanees=None

,max_1eaf_nodes=None)

DecisionTreeClassifier示例:

fromsklearn.datasetsimport1oad_iris

fromsk1earn.cross_validationimportcross_val_score

fromsklearn.treeimportDecisionTreeC1assifier

clf=DecisionTreeC1assifier(random_state=0)

iris=1oad_iris()

cross_va1_score(c1f,iris,data,iris.target,cv=10)

DecisionTreeRegressor構(gòu)造方法:

osk1earn,tree.DecisionTreeRegressor(criterion=*mse'

,sp1itter=*best*

,max_depth=None

,min_samp1es_split=2

,min_samples_1eaf=1

,max_features=None

,random_state=None

,min_density=None

,compute_importances=None

,max_1eaf_nodes=None)

DecisionTreeRegressor示例:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論