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

下載本文檔

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

文檔簡介

1、簡介:2主要特點(diǎn):2scikit-learn安裝:(ubuntu版本14.04.1)2Classification21.監(jiān)督學(xué)習(xí)21.1廣義線性模型:21.2 支持向量機(jī)71.3 隨機(jī)梯度下降81.4 最近鄰91.5 Gaussian Processes131.6 Cross decomposition141.7 Naive Bayes141.8 Decision Trees151.9 Ensemble methods181.10 Multiclass and multilabel algorithms231.11 Feature selection241.14 Isotonic regres

2、sion272.272.3 Clustering282.5 Decomposing signals in components (matrix factorization problems)303.Model selection and evaluation303.1 Cross-validation: evaluating estimator performance303.2 Grid Search: Searching for estimator parameters343.3 Pipeline: chaining estimators353.4 FeatureUnion: Combini

3、ng feature extractors363.5. Model evaluation: quantifying the quality of predictions363.6. Model persistence373.7. Validation curves: plotting scores to evaluate models374.384.2 Preprocessing data384.4 Random Projection43簡介:scikit-learn是一個(gè)用于機(jī)器學(xué)習(xí)的Python模塊,建立在SciPy基礎(chǔ)之上。主要特點(diǎn):操作簡單、高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析無訪問限制,在任何情

4、況下可重新使用建立在NumPy、SciPy和matplotlib基礎(chǔ)上使用商業(yè)開源協(xié)議-BSD許可證scikit-learn安裝:(ubuntu版本14.04.1)安裝依賴:sudo apt-get install build-essential python-dev python-numpy python-setuptools python-scipy libatlas-dev libatlas3-base python-matplotlib安裝pipsudo apt-get install pytho

5、n-pip安裝scikit-learnsudo pip install -U scikit-learn標(biāo)準(zhǔn)庫Classification1.監(jiān)督學(xué)習(xí)1.1廣義線性模型:1.1.1普通最小二乘法:無偏估計(jì)的通過計(jì)算最小二乘的損失函數(shù)的最小值來求得參數(shù)得出模型通常用在觀測(cè)有誤差的情況,解決線性回歸問題求實(shí)際觀測(cè)值與預(yù)測(cè)值差的平方最小值數(shù)學(xué)公式:是由sklearn.linear_model模塊中的LinearRegression類實(shí)現(xiàn)回歸LinearRegression的構(gòu)造方法:sklearn.linear_model.LinearRegression(fit_intercept=True #默認(rèn)

6、值為True,表示計(jì)算隨機(jī)變量,F(xiàn)alse表示不計(jì)算隨機(jī)變量 , normalize=False #默認(rèn)值為False,表示在回歸前是否對(duì)回歸因子X進(jìn)行歸一化,True表示是 , copy_X=True)LinearRegression的屬性有:coef_和intercept_。coef_存儲(chǔ)到的值,與X的維數(shù)一致。intercept_存儲(chǔ)的值。LinearRegression的常用方法有:decision_function(X) #返回X的預(yù)測(cè)值yfit(X,y,n_jobs) #擬合模型get_params(deep) #獲取LinearRegression構(gòu)造方法的參數(shù)信息predict

7、(X) #求預(yù)測(cè)值 #同decision_functionscore(X,y,sample_weight) #計(jì)算公式為set_params(*params) #設(shè)置LinearRegression構(gòu)造方法的參數(shù)值 參考示例:from sklearn import linear_modelX= 0, 0, 1, 1, 2, 2y = 0, 1, 2clf = linear_model.LinearRegression()clf.fit(X, y)print clf.coef_print ercept_print clf.predict(3, 3)print clf.decisio

8、n_function(X)print clf.score(X, y)print clf.get_params()print clf.set_params(fit_intercept = False)普通最小二乘法的復(fù)雜性:假設(shè)影響因素x為一個(gè)n行p列的矩陣那么其算法復(fù)雜度為假設(shè)缺點(diǎn):要求每個(gè)影響因素相互獨(dú)立,否則會(huì)出現(xiàn)隨機(jī)誤差。回歸用于解決預(yù)測(cè)值問題1.1.2 Ridge回歸有偏估計(jì)的,回歸系數(shù)更符合實(shí)際、更可靠,對(duì)病態(tài)數(shù)據(jù)的擬合要強(qiáng)于最小二乘數(shù)學(xué)公式:>=0,越大,w值越趨于一致改良的最小二乘法,增加系數(shù)的平方和項(xiàng)和調(diào)整參數(shù)的積是由sklearn.linear_model模塊中的Rid

9、ge類實(shí)現(xiàn)Ridge回歸用于解決兩類問題:一是樣本少于變量個(gè)數(shù),二是變量間存在共線性Ridge的構(gòu)造方法:sklearn.linear_model.Ridge(alpha=1.0 #公式中的值,默認(rèn)為1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None #共軛梯度求解器的最大迭代次數(shù),tol=0.001 #默認(rèn)值0.001, solver='auto') #Ridge回歸復(fù)雜性:同最小二乘法使用:from sklearn import linea

10、r_modelX= 0, 0, 1, 1, 2, 2y = 0, 1, 2clf = linear_model.Ridge(alpha = 0.1)clf.fit(X, y)print clf.coef_print ercept_print clf.predict(3, 3)print clf.decision_function(X)print clf.score(X, y)print clf.get_params()print clf.set_params(fit_intercept = False)調(diào)整參數(shù)設(shè)置():通過廣義交叉驗(yàn)證的方式(RidgeCV)設(shè)置調(diào)整參數(shù)Ridg

11、eCV構(gòu)造方法:sklearn.linear_model.RidgeCV(alphas=array( 0.1, 1., 10. ), fit_intercept=True, normalize=False, scoring=None #交叉驗(yàn)證發(fā)生器, cv=None, gcv_mode=None , store_cv_values=False)使用示例:from sklearn import linear_modelX= 0, 0, 1, 1, 2, 2y = 0, 1, 2clf = linear_model.

12、RidgeCV(alpha = 0.1, 1.0, 10.0)clf.fit(X, y)print clf.coef_print ercept_print clf.predict(3, 3)print clf.decision_function(X)print clf.score(X, y)print clf.get_params()print clf.set_params(fit_intercept = False)1.1.3 Lasso數(shù)學(xué)公式:估計(jì)稀疏系數(shù)的線性模型適用于參數(shù)少的情況,因其產(chǎn)生稀疏矩陣,可用與特征提取實(shí)現(xiàn)類是Lasso,此類用于監(jiān)督分類較好的解決回歸分析中的

13、多重共線性問題思想:在回歸系數(shù)的絕對(duì)值之和小于一個(gè)常數(shù)的約束條件下,使殘差平方和最小化使用:clf = linear_model.Lasso(alpha = 0.1)設(shè)置調(diào)整參數(shù)():交叉驗(yàn)證:LassoCV(適用于高維數(shù)據(jù)集)或LassoLarsCV(適合于樣本數(shù)據(jù)比觀察數(shù)據(jù)小很多)基于模式選擇的信息標(biāo)準(zhǔn):LassoLarsIC(BIC/AIC)1.1.4 Elastic Net是一個(gè)使用L1和L2訓(xùn)練的線性模型,適合于在參數(shù)很少的情況下(如Lasso)并保持Ridge性能的情況,既是多種影響因素依賴與另外一種因素。繼承Ridge的旋轉(zhuǎn)穩(wěn)定性。數(shù)學(xué)表達(dá)式:from sklearn.linea

14、r_model import ElasticNetenet = ElasticNet(alpha=alpha, l1_ratio=0.7)求取和的值使用ElasticNetCV1.1.5 Multi-task Lasso用于估計(jì)y值不是一元的回歸問題用于估計(jì)聯(lián)合多元回歸問題的稀疏系數(shù),y是一個(gè)2維矩陣(n_samples,n_tasks)。對(duì)于所有的回歸問題,選的的因素必須相同,也叫tasks。使用:clf = linear_model.MultiTaskLasso(alpha=0.1)1.1.6 Least Angle Regression是一個(gè)計(jì)算高維數(shù)據(jù)的回歸算法。實(shí)現(xiàn)類是sklearn

15、.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ì)有相同的增長率很融合修改變成其他的評(píng)估方法缺點(diǎn):噪聲敏感使用:clf = linear_model.Lars(n_nonzero_coefs=1)1.1.7 LARS Lasso是一個(gè)使用LARS算法實(shí)現(xiàn)的lasso模型。使用:clf = linear_model.LassoLars(alpha=0.01)1.1.8 OMP(Orthogonal Matching Pursuit)通過固定的非零元素

16、數(shù)得到最優(yōu)解OMP基于貪心算法實(shí)現(xiàn),每一步的原子項(xiàng)都與殘余高度相關(guān)。使用:omp = OrthogonalMatchingPursuit(n_nonzero_coefs=n_nonzero_coefs)omp_cv = OrthogonalMatchingPursuitCV()1.1.9 貝葉斯回歸(Bayesian Regression)可以再估計(jì)過程包含正則化參數(shù),參數(shù)可以手動(dòng)設(shè)置,用于估計(jì)概率回歸問題優(yōu)點(diǎn):適用于手邊數(shù)據(jù)可用于在估計(jì)過程中包含正規(guī)化參數(shù)缺點(diǎn):耗時(shí)Bayesian Ridge Regression:BayesianRidge用于估計(jì)回歸問題的概率模型 用法:clf = li

17、near_model.BayesianRidge() By default ARD(Automatic Relevance Determination ):類似于Bayesian Ridge Regression,但可產(chǎn)生稀疏的值 用法:clf = ARDRegression(compute_score=True)1.1.10 邏輯回歸可以做概率預(yù)測(cè),也可用于分類僅能用于線性問題通過計(jì)算真實(shí)值與預(yù)測(cè)值的概率,然后變換成損失函數(shù),求損失函數(shù)最小值來計(jì)算模型參數(shù)從而得出模型使用:clf_l1_LR = LogisticRegression(C=C, penalty='l1', to

18、l=0.01)clf_l2_LR = LogisticRegression(C=C, penalty='l2', tol=0.01)clf_l1_LR.fit(X, y)clf_l2_LR.fit(X, y)1.1.11 SGD(Stochastic Gradient Descent )用于樣本數(shù)據(jù)非常大的情況由SGDClassifier和SGDRegressor使用:clf = linear_model.SGDRegressor()clf = linear_model.SGDClassifier()對(duì)于SGDClassifier,當(dāng)loss=”log”時(shí)擬合成一個(gè)邏輯回歸模型

19、,當(dāng)loss=”hinge”時(shí)擬合成一個(gè)線性支持向量機(jī)1.1.12 Perceptron是另一個(gè)大規(guī)模學(xué)習(xí)的算法不需要學(xué)習(xí)率不是正則的只有錯(cuò)誤的時(shí)候更新模型使用:同SGDClassifier1.1.13 Passive Aggressive Algorithms不要求學(xué)習(xí)率的時(shí)候同Perceptron,與Perceptron不同的是包含正則參數(shù)C使用:同SGDClassifier1.1.14 RANSAC(RANdom SAmple Consensus)是一個(gè)從完整數(shù)據(jù)集中的一個(gè)子集中健壯估計(jì)參數(shù)的迭代算法,是非確定性算法,此算法把數(shù)據(jù)分成很多子集,根據(jù)子集估計(jì)算法步驟:(1)從原始數(shù)據(jù)中選擇

20、最小的隨機(jī)樣本,并檢查數(shù)據(jù)時(shí)候有效(is_data_valid)(2)根據(jù)(1)的隨機(jī)子集擬合模型(base_estimator.fit),并檢查模型是否有效(is_model_valid)(3)通過計(jì)算估計(jì)模型的方法來分類數(shù)據(jù)(4)如果臨近樣本數(shù)是最大的,并且當(dāng)前的評(píng)估模型有同樣的數(shù)則保存模型為最優(yōu)模型。使用:model_ransac = linear_model.RANSACRegressor(linear_model.LinearRegression()1.1.15多項(xiàng)式回歸機(jī)器學(xué)習(xí)中的常見模式,使用線性模型訓(xùn)練數(shù)據(jù)的非線性函數(shù)1.2 支持向量機(jī)擬合出來的模型為一個(gè)超平面解決與樣本維數(shù)無

21、關(guān),適合做文本分類解決小樣本、非線性、高維是用于分類、回歸、孤立點(diǎn)檢測(cè)的監(jiān)督學(xué)習(xí)方法的集合。優(yōu)點(diǎn):有效的高維空間維數(shù)大于樣本數(shù)的時(shí)候仍然有效在決策函數(shù)中使用訓(xùn)練函數(shù)的子集通用(支持不同的內(nèi)核函數(shù):線性、多項(xiàng)式、s型等)缺點(diǎn):不適用于特征數(shù)遠(yuǎn)大于樣本數(shù)的情況不直接提供概率估計(jì)接受稠密和稀疏的輸入1.2.1 Classification由SVC、NuSVC或LinearSVC實(shí)現(xiàn),可進(jìn)行多類分類LinearSVC只支持線性分類SVC和NuSVC實(shí)現(xiàn)一對(duì)一,LinearSVC實(shí)現(xiàn)一對(duì)多使用:clf = svm.SVC()lin_clf = svm.LinearSVC()SVC、NuSVC和Linea

22、rSVC均無support_、support_vectors_和n_support_屬性1.2.2 回歸支持向量分類的方法也支持向量回歸,有SVR和NuSVR,同分類一樣,只是y向量需要是浮點(diǎn)數(shù)使用:clf = svm.SVR()1.2.3 Density estimation, novelty detection由OneClassSVM實(shí)現(xiàn),是非監(jiān)督學(xué)習(xí),只需要一個(gè)X矩陣,沒有類標(biāo)簽1.2.4 Complexityand 1.3 隨機(jī)梯度下降應(yīng)用于大量稀疏的機(jī)器學(xué)習(xí)問題,輸入數(shù)據(jù)為稀疏的常用于文本分類和自然語言處理是處理大樣本數(shù)據(jù)的非常有效的方法優(yōu)點(diǎn):高效易于實(shí)施缺點(diǎn):需要一些調(diào)整參數(shù)對(duì)尺度

23、特征敏感1.3.1 Classification使用SGDClassifier實(shí)現(xiàn),擬合參數(shù)為Xn_samples,n_features和yN_samples可以實(shí)現(xiàn)多類分類,此時(shí)是通過多個(gè)binary分類實(shí)現(xiàn)實(shí)現(xiàn)方式是one-vs-all(OVA),每一個(gè)binary分類把其中一個(gè)分出來,剩下的作為一個(gè)。測(cè)試的時(shí)候計(jì)算每一個(gè)分類器的得分并選擇得分最高的1.3.2 Regression由SGDRegressor實(shí)現(xiàn)1.3.3 復(fù)雜度X為(n,p),則復(fù)雜度為1.4 最近鄰無監(jiān)督的最近鄰是其他學(xué)習(xí)方法的基礎(chǔ),監(jiān)督的近鄰學(xué)習(xí)分為:分類(數(shù)據(jù)有離散標(biāo)記)和回歸(數(shù)據(jù)有連續(xù)標(biāo)記)最近鄰分類:計(jì)算待分類

24、樣本與訓(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中,有三種算法:ball_tree(BallTree)、kd_tree(KDTree)、brute(brute-force)、auto(默認(rèn))from sklearn.neighbors import NearestNeighborssklearn.neighbors.NearestNeighbors(n_

25、neighbors=5 #鄰居數(shù),默認(rèn)為5 , radius=1.0 #參數(shù)空間范圍,默認(rèn)值為1.0 , algorithm='auto' #用于計(jì)算最近鄰的算法(ball_tree、kd_tree、brute、auto) , leaf_size=30 #傳遞給BallTree或KDTree葉大小 , metric='minkowski' , p=2 , metric_params=None , *kwargs)使用:nbrs = NearestNeighbors(n_neighbors=2, algorithm='ball_tree').fit

26、(X)distances, indices = nbrs.kneighbors(X) KDTree and BallTree使用: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=False) BallTree用法同KDTree 1.4.2 最近鄰分類是基于實(shí)例的非泛華學(xué)習(xí),有兩種不同的最近鄰分類:KNeighborsClassifier和Ra

27、diusNeighborsClassifier(非均勻采樣時(shí)比較合適)KNeighborsClassifier:實(shí)現(xiàn)k近鄰,k是一個(gè)用戶輸入的整數(shù),k高度依賴與數(shù)據(jù)sklearn.neighbors.KNeighborsClassifier(n_neighbors=5 #鄰居數(shù),默認(rèn)為5 , weights='uniform' #用于預(yù)測(cè)的權(quán)重方法 , algorithm='auto' #用于計(jì)算最近鄰的算法(ball_tree、kd_tree、brute、auto) , leaf_size=30 #傳遞給BallTree或KDTree葉大小 , p=2 # ,

28、 metric='minkowski' #用于樹的度量距離 , metric_params=None #度量參數(shù) , *kwargs)使用:from sklearn.neighbors import KNeighborsClassifierneigh = KNeighborsClassifier(n_neighbors=3)neigh.fit(X, y)RadiusNeighborsClassifier:實(shí)現(xiàn)基于給定的半徑r內(nèi)的鄰居數(shù)。用于不是均勻采樣的數(shù)據(jù),不適合高維參數(shù)空間的數(shù)據(jù)sklearn.neighbors.RadiusNeighborsClassifier(radi

29、us=1.0 , weights='uniform' #參數(shù)空間范圍 , algorithm='auto' #用于計(jì)算最近鄰的算法(ball_tree、kd_tree、brute、auto) , leaf_size=30 #傳遞給BallTree或KDTree葉大小 , p=2 , metric='minkowski' #用于樹的度量距離 , outlier_label=None #離散群體的標(biāo)簽 , metric_params=None #度量參數(shù) , *kwargs)使用:from sklearn.neighbors import Radiu

30、sNeighborsClassifierneigh = RadiusNeighborsClassifier(radius=1.0)neigh.fit(X, y)1.4.3 近鄰回歸近鄰回歸用于標(biāo)記數(shù)據(jù)是連續(xù)的情況,有兩種不同的最近鄰分類:KNeighborsRegressor和RadiusNeighborsRegressorKNeighborsRegressor:實(shí)現(xiàn)k近鄰,k是一個(gè)用戶輸入的整數(shù)sklearn.neighbors.KNeighborsRegressor(n_neighbors=5 #鄰居數(shù),默認(rèn)為5 , weights='uniform' #用于預(yù)測(cè)的權(quán)重方法

31、 , algorithm='auto' #用于計(jì)算最近鄰的算法(ball_tree、kd_tree、brute、auto) , leaf_size=30 #傳遞給BallTree或KDTree葉大小 , p=2 # , metric='minkowski' #用于樹的度量距離 , metric_params=None #度量參數(shù) , *kwargs)使用:from sklearn.neighbors import KNeighborsRegressorneigh = KNeighborsRegressor(n_neighbors=3)neigh.fit(X, y

32、)RadiusNeighborsRegressor:實(shí)現(xiàn)基于給定的半徑r內(nèi)的鄰居數(shù)。sklearn.neighbors.RadiusNeighborsRegressor(radius=1.0 , weights='uniform' #參數(shù)空間范圍 , algorithm='auto' #用于計(jì)算最近鄰的算法(ball_tree、kd_tree、brute、auto) , leaf_size=30 #傳遞給BallTree或KDTree葉大小 , p=2 , metric='minkowski' #用于樹的度量距離 , outlier_label=

33、None #離散群體的標(biāo)簽 , metric_params=None #度量參數(shù) , *kwargs)使用:from sklearn.neighbors import RadiusNeighborsRegressorneigh = RadiusNeighborsRegressor(radius=1.0)neigh.fit(X, y)1.4.4 最近鄰算法 Brute Force搜索時(shí)通過sklearn.neighbors中的algorithm參數(shù)設(shè)置為brute實(shí)現(xiàn),計(jì)算是通過sklearn.metrics.pairwise此種方法計(jì)算效率低,D維空間的N個(gè)樣本時(shí)間復(fù)雜度為1.4

34、.4.2 K-D Tree為了解決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ù)雜度降低為,但高維數(shù)據(jù)空間效率低 BallTree解決K-DTree高維空間效率低的問題 最近鄰算法選擇N為樣本數(shù),D為維數(shù),k表示鄰居數(shù)當(dāng)N=30的時(shí)候選擇BruteForce比較合適數(shù)據(jù)集結(jié)構(gòu)化的時(shí)候,選擇K-D Tree或K-D Tree當(dāng)k相當(dāng)于與N來說變得非常大時(shí)選擇BruteForce如果查詢點(diǎn)數(shù)少時(shí)BruteForce

35、 leaf_size的影響1)影響構(gòu)建樹的時(shí)間,leaf_size越大,構(gòu)建樹時(shí)間越短2)影響查詢時(shí)間,leaf_size最合適的值為303)影響內(nèi)存,隨著leaf_size的增大,存儲(chǔ)內(nèi)存減小1.4.5 Nearest Centroid Classifier構(gòu)造方法:sklearn.neighbors.NearestCentroid(metric='euclidean' , shrink_threshold=None)用法:X = np.array(-1, -1, -2, -1, -3, -2, 1, 1, 2, 1, 3, 2) y = np.array(1, 1, 1,

36、2, 2, 2)clf = NearestCentroid() clf.fit(X, y)1.5 Gaussian ProcessesGPML是一種監(jiān)督學(xué)習(xí)方法,主要用于解決回歸問題,已經(jīng)擴(kuò)展到概率分類,但目前的研究只是一個(gè)回歸練習(xí)的后處理優(yōu)點(diǎn):預(yù)測(cè)插值觀測(cè)預(yù)測(cè)是概率的,可以預(yù)測(cè)經(jīng)驗(yàn)置信空間,改變預(yù)測(cè)值通用缺點(diǎn):非離散高維空間效率低分類僅僅是一個(gè)后處理實(shí)現(xiàn)類是GaussianProcess構(gòu)造方法:sklearn.gaussian_process.GaussianProcess(regr='constant' #回歸函數(shù)返回信息 , corr='squared_expo

37、nential' #自相關(guān)信息 , beta0=None #回歸權(quán)重向量 , storage_mode='full' , verbose=False , theta0=0.1 , thetaL=None , thetaU=None , optimizer='fmin_cobyla' , random_start=1 , normalize=True , nugget=2.2204460492503131e-15 , random_state=None)使用:import numpy as npfrom sklearn.gaussian_process i

38、mport GaussianProcessX = np.array(1., 3., 5., 6., 7., 8.).Ty = (X * np.sin(X).ravel()gp = GaussianProcess(theta0=0.1, thetaL=.001, thetaU=1.)gp.fit(X, y) 1.6 Cross decomposition包括兩類算法PLS和CCA,用于計(jì)算兩個(gè)多變數(shù)據(jù)集的線性相關(guān),需要擬合的多變集X和Y是2D數(shù)組當(dāng)預(yù)測(cè)矩陣比實(shí)際數(shù)據(jù)有更多的變量時(shí)適合用PLS1.7 Naive BayesNaive Bayes方法是監(jiān)督學(xué)習(xí)的集合基于假設(shè)每對(duì)特征之間都是獨(dú)立的貝葉

39、斯理論樸素貝葉斯方法是基于貝葉斯理論并假設(shè)每個(gè)特征都是獨(dú)立的應(yīng)用于文檔分類和垃圾郵件過濾需要訓(xùn)練數(shù)據(jù)比較少樸素貝葉斯通過計(jì)算屬于每個(gè)類的概率并取概率最大的類作為預(yù)測(cè)類naive Bayes is a decent classifier, but a bad estimator1.7.1 Gaussian Naive Bayes實(shí)現(xiàn)分類的是高斯貝葉斯算法是實(shí)現(xiàn)類GaussianNB構(gòu)造方法:sklearn.naive_bayes.GaussianNBGaussianNB類構(gòu)造方法無參數(shù),屬性值有:class_prior_ #每一個(gè)類的概率theta_ #每個(gè)類中各個(gè)特征的平均sigma_ #每個(gè)

40、類中各個(gè)特征的方差示例: import numpy as npX = np.array(-1, -1, -2, -1, -3, -2, 1, 1, 2, 1, 3, 2)Y = np.array(1, 1, 1, 2, 2, 2)from sklearn.naive_bayes import GaussianNBclf = GaussianNB()clf.fit(X, Y)GaussianNB類無score方法1.7.2 Multinomial Naive Bayes用于文本分類用于處理多項(xiàng)離散數(shù)據(jù)集的Naive Bayes算法的類是Multinomial NB構(gòu)造方法:sklearn.nai

41、ve_bayes.MultinomialNB(alpha=1.0 #平滑參數(shù) , fit_prior=True #學(xué)習(xí)類的先驗(yàn)概率 , class_prior=None) #類的先驗(yàn)概率示例: import numpy as npX = np.random.randint(5, size=(6, 100)y = np.array(1, 2, 3, 4, 5, 6)from sklearn.naive_bayes import MultinomialNBclf = MultinomialNB()clf.fit(X, y)1.7.3 Bernoulli Naive Bayes處理根據(jù)multiva

42、riate Bernoulli離散的訓(xùn)練和分類數(shù)據(jù)算法,實(shí)現(xiàn)類是BernoulliNB構(gòu)造方法:sklearn.naive_bayes.BernoulliNB(alpha=1.0 #平滑參數(shù) , binarize=0.0#樣本特征閾值二值比 , fit_prior=True #學(xué)習(xí)類的先驗(yàn)概率 , class_prior=None) #類的先驗(yàn)概率示例:import numpy as npX = np.random.randint(2, size=(6, 100)Y = np.array(1, 2, 3, 4, 4, 5)from sklearn.naive_bayes import Bern

43、oulliNBclf = BernoulliNB()clf.fit(X, Y)1.8 Decision Trees是一個(gè)無參數(shù)的分類和回歸的監(jiān)督學(xué)習(xí)方法,目標(biāo)是創(chuàng)建一個(gè)模型用于預(yù)測(cè)目標(biāo)變量的值,通過學(xué)習(xí)從數(shù)據(jù)特征中推斷出來的簡單規(guī)則。優(yōu)點(diǎn):易于理解只需要很少的準(zhǔn)備數(shù)據(jù)復(fù)雜度是數(shù)據(jù)點(diǎn)數(shù)的對(duì)數(shù)能夠同時(shí)處理數(shù)值和分類數(shù)據(jù)能夠處理多輸出問題采用白盒模型使用統(tǒng)計(jì)測(cè)試可以驗(yàn)證模型即使假設(shè)有點(diǎn)錯(cuò)誤也可以表現(xiàn)很好缺點(diǎn):可以創(chuàng)建復(fù)雜樹但不能很好的推廣不穩(wěn)定是NP問題有很難學(xué)習(xí)的概念如果一些類占主導(dǎo)地位創(chuàng)建的樹就有偏差1.8.1 分類實(shí)現(xiàn)類是DecisionTreeClassifier,能夠執(zhí)行數(shù)據(jù)集的多類分類輸

44、入?yún)?shù)為兩個(gè)數(shù)組Xn_samples,n_features和yn_samples,X為訓(xùn)練數(shù)據(jù),y為訓(xùn)練數(shù)據(jù)的標(biāo)記數(shù)據(jù)DecisionTreeClassifier構(gòu)造方法為:sklearn.tree.DecisionTreeClassifier(criterion='gini' , splitter='best' , max_depth=None , min_samples_split=2 , min_samples_leaf=1 , max_features=None , random_state=None , min_density=None , compu

45、te_importances=None , max_leaf_nodes=None)DecisionTreeClassifier示例:from sklearn import treeX = 0, 0, 1, 1Y = 0, 1clf = tree.DecisionTreeClassifier()clf = clf.fit(X, Y)1.8.2 回歸實(shí)現(xiàn)類是DecisionTreeRegressor,輸入為X,y同上,y為浮點(diǎn)數(shù)DecisionTreeRegressor構(gòu)造方法為:sklearn.tree.DecisionTreeRegressor(criterion='mse'

46、 , splitter='best' , 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示例:from sklearn import treeX = 0, 0, 2, 2y = 0.5, 2.5clf = tree.DecisionTreeRegresso

47、r()clf = clf.fit(X, y)clf.predict(1, 1)1.8.3 多輸出問題實(shí)現(xiàn)類有:DecisionTreeClassifier和DecisionTreeRegressor.DecisionTreeClassifier構(gòu)造方法:sklearn.tree.DecisionTreeClassifier(criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, max_features=None, random_sta

48、te=None, min_density=None, compute_importances=None, max_leaf_nodes=None)DecisionTreeClassifier示例:from sklearn.datasets import load_irisfrom sklearn.cross_validation import cross_val_scorefrom sklearn.tree import DecisionTreeClassifierclf = DecisionTreeClassifier(random_state=0)iris = load_iris()cro

49、ss_val_score(clf, iris.data, iris.target, cv=10)DecisionTreeRegressor構(gòu)造方法:sklearn.tree.DecisionTreeRegressor(criterion='mse', splitter='best', 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_node

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論