scikit-learn學習主要知識點_第1頁
scikit-learn學習主要知識點_第2頁
scikit-learn學習主要知識點_第3頁
scikit-learn學習主要知識點_第4頁
scikit-learn學習主要知識點_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、簡介:2主要特點:2scikit-learn安裝:(ubuntu版本14.04.1)2Classification21.監(jiān)督學習21.1廣義線性模型:21.2 支持向量機71.3 隨機梯度下降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是一個用于機器學習的Python模塊,建立在SciPy基礎之上。主要特點:操作簡單、高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析無訪問限制,在任何情

4、況下可重新使用建立在NumPy、SciPy和matplotlib基礎上使用商業(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標準庫Classification1.監(jiān)督學習1.1廣義線性模型:1.1.1普通最小二乘法:無偏估計的通過計算最小二乘的損失函數(shù)的最小值來求得參數(shù)得出模型通常用在觀測有誤差的情況,解決線性回歸問題求實際觀測值與預測值差的平方最小值數(shù)學公式:是由sklearn.linear_model模塊中的LinearRegression類實現(xiàn)回歸LinearRegression的構(gòu)造方法:sklearn.linear_model.LinearRegression(fit_intercept=True #默認

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

7、(X) #求預測值 #同decision_functionscore(X,y,sample_weight) #計算公式為set_params(*params) #設置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)普通最小二乘法的復雜性:假設影響因素x為一個n行p列的矩陣那么其算法復雜度為假設缺點:要求每個影響因素相互獨立,否則會出現(xiàn)隨機誤差?;貧w用于解決預測值問題1.1.2 Ridge回歸有偏估計的,回歸系數(shù)更符合實際、更可靠,對病態(tài)數(shù)據(jù)的擬合要強于最小二乘數(shù)學公式:>=0,越大,w值越趨于一致改良的最小二乘法,增加系數(shù)的平方和項和調(diào)整參數(shù)的積是由sklearn.linear_model模塊中的Rid

9、ge類實現(xiàn)Ridge回歸用于解決兩類問題:一是樣本少于變量個數(shù),二是變量間存在共線性Ridge的構(gòu)造方法:sklearn.linear_model.Ridge(alpha=1.0 #公式中的值,默認為1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None #共軛梯度求解器的最大迭代次數(shù),tol=0.001 #默認值0.001, solver='auto') #Ridge回歸復雜性:同最小二乘法使用: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ù)設置():通過廣義交叉驗證的方式(RidgeCV)設置調(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 #交叉驗證發(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ù)學公式:估計稀疏系數(shù)的線性模型適用于參數(shù)少的情況,因其產(chǎn)生稀疏矩陣,可用與特征提取實現(xiàn)類是Lasso,此類用于監(jiān)督分類較好的解決回歸分析中的

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

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

15、.linear_model中的Lars類優(yōu)點:當維數(shù)大于點數(shù)的時候在上下文中是有效的復雜度和最小二乘相同,但計算很快產(chǎn)生一個分片解決方案路徑用于交叉驗證或相似的調(diào)整模型方法如果兩個變量響應相關(guān),則會有相同的增長率很融合修改變成其他的評估方法缺點:噪聲敏感使用:clf = linear_model.Lars(n_nonzero_coefs=1)1.1.7 LARS Lasso是一個使用LARS算法實現(xiàn)的lasso模型。使用:clf = linear_model.LassoLars(alpha=0.01)1.1.8 OMP(Orthogonal Matching Pursuit)通過固定的非零元素

16、數(shù)得到最優(yōu)解OMP基于貪心算法實現(xiàn),每一步的原子項都與殘余高度相關(guān)。使用:omp = OrthogonalMatchingPursuit(n_nonzero_coefs=n_nonzero_coefs)omp_cv = OrthogonalMatchingPursuitCV()1.1.9 貝葉斯回歸(Bayesian Regression)可以再估計過程包含正則化參數(shù),參數(shù)可以手動設置,用于估計概率回歸問題優(yōu)點:適用于手邊數(shù)據(jù)可用于在估計過程中包含正規(guī)化參數(shù)缺點:耗時Bayesian Ridge Regression:BayesianRidge用于估計回歸問題的概率模型 用法: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 邏輯回歸可以做概率預測,也可用于分類僅能用于線性問題通過計算真實值與預測值的概率,然后變換成損失函數(shù),求損失函數(shù)最小值來計算模型參數(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()對于SGDClassifier,當loss=”log”時擬合成一個邏輯回歸模型

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

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

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

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

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

24、樣本與訓練樣本中各個類的距離,求出距離最小的K緊鄰是求出k個最小的,然后計算分別屬于某一類的個數(shù),選個數(shù)最大的類,若相等則選擇跟訓練集中的序列有關(guān)近鄰分類:解決離散數(shù)據(jù)近鄰回歸:解決連續(xù)數(shù)據(jù)1.4.1 無監(jiān)督的最近鄰由NearestNeighbors實現(xiàn),在sklearn.neighbors中,有三種算法:ball_tree(BallTree)、kd_tree(KDTree)、brute(brute-force)、auto(默認)from sklearn.neighbors import NearestNeighborssklearn.neighbors.NearestNeighbors(n_

25、neighbors=5 #鄰居數(shù),默認為5 , radius=1.0 #參數(shù)空間范圍,默認值為1.0 , algorithm='auto' #用于計算最近鄰的算法(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 最近鄰分類是基于實例的非泛華學習,有兩種不同的最近鄰分類:KNeighborsClassifier和Ra

27、diusNeighborsClassifier(非均勻采樣時比較合適)KNeighborsClassifier:實現(xiàn)k近鄰,k是一個用戶輸入的整數(shù),k高度依賴與數(shù)據(jù)sklearn.neighbors.KNeighborsClassifier(n_neighbors=5 #鄰居數(shù),默認為5 , weights='uniform' #用于預測的權(quán)重方法 , algorithm='auto' #用于計算最近鄰的算法(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:實現(xiàn)基于給定的半徑r內(nèi)的鄰居數(shù)。用于不是均勻采樣的數(shù)據(jù),不適合高維參數(shù)空間的數(shù)據(jù)sklearn.neighbors.RadiusNeighborsClassifier(radi

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

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

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

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

34、.4.2 K-D Tree為了解決BruteForce計算效率低的問題,通過減少計算距離所需的數(shù)據(jù)實現(xiàn),思想是:如果A距離B非常遠,B距離C非常近,那么認為A與C距離非常遠而不需要進行計算。相比于BruteForce,時間復雜度降低為,但高維數(shù)據(jù)空間效率低 BallTree解決K-DTree高維空間效率低的問題 最近鄰算法選擇N為樣本數(shù),D為維數(shù),k表示鄰居數(shù)當N=30的時候選擇BruteForce比較合適數(shù)據(jù)集結(jié)構(gòu)化的時候,選擇K-D Tree或K-D Tree當k相當于與N來說變得非常大時選擇BruteForce如果查詢點數(shù)少時BruteForce

35、 leaf_size的影響1)影響構(gòu)建樹的時間,leaf_size越大,構(gòu)建樹時間越短2)影響查詢時間,leaf_size最合適的值為303)影響內(nèi)存,隨著leaf_size的增大,存儲內(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)督學習方法,主要用于解決回歸問題,已經(jīng)擴展到概率分類,但目前的研究只是一個回歸練習的后處理優(yōu)點:預測插值觀測預測是概率的,可以預測經(jīng)驗置信空間,改變預測值通用缺點:非離散高維空間效率低分類僅僅是一個后處理實現(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,用于計算兩個多變數(shù)據(jù)集的線性相關(guān),需要擬合的多變集X和Y是2D數(shù)組當預測矩陣比實際數(shù)據(jù)有更多的變量時適合用PLS1.7 Naive BayesNaive Bayes方法是監(jiān)督學習的集合基于假設每對特征之間都是獨立的貝葉

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

40、類中各個特征的方差示例: 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用于文本分類用于處理多項離散數(shù)據(jù)集的Naive Bayes算法的類是Multinomial NB構(gòu)造方法:sklearn.nai

41、ve_bayes.MultinomialNB(alpha=1.0 #平滑參數(shù) , fit_prior=True #學習類的先驗概率 , class_prior=None) #類的先驗概率示例: 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離散的訓練和分類數(shù)據(jù)算法,實現(xiàn)類是BernoulliNB構(gòu)造方法:sklearn.naive_bayes.BernoulliNB(alpha=1.0 #平滑參數(shù) , binarize=0.0#樣本特征閾值二值比 , fit_prior=True #學習類的先驗概率 , class_prior=None) #類的先驗概率示例: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是一個無參數(shù)的分類和回歸的監(jiān)督學習方法,目標是創(chuàng)建一個模型用于預測目標變量的值,通過學習從數(shù)據(jù)特征中推斷出來的簡單規(guī)則。優(yōu)點:易于理解只需要很少的準備數(shù)據(jù)復雜度是數(shù)據(jù)點數(shù)的對數(shù)能夠同時處理數(shù)值和分類數(shù)據(jù)能夠處理多輸出問題采用白盒模型使用統(tǒng)計測試可以驗證模型即使假設有點錯誤也可以表現(xiàn)很好缺點:可以創(chuàng)建復雜樹但不能很好的推廣不穩(wěn)定是NP問題有很難學習的概念如果一些類占主導地位創(chuàng)建的樹就有偏差1.8.1 分類實現(xiàn)類是DecisionTreeClassifier,能夠執(zhí)行數(shù)據(jù)集的多類分類輸

44、入?yún)?shù)為兩個數(shù)組Xn_samples,n_features和yn_samples,X為訓練數(shù)據(jù),y為訓練數(shù)據(jù)的標記數(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 回歸實現(xiàn)類是DecisionTreeRegressor,輸入為X,y同上,y為浮點數(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 多輸出問題實現(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論