版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
TOC\o"1-5"\h\z簡介:2主要特點:2scikit-learn安裝:(ubuntu版本14.04.1)2Classification2.監(jiān)督學(xué)習(xí)2廣義線性模型:2支持向量機6隨機梯度下降7最近鄰8GaussianProcesses11Crossdecomposition11NaiveBayes12DecisionTrees13Ensemblemethods14Multiclassandmultilabelalgorithms18Featureselection19Isotonicregression2121Clustering21Decomposingsignalsincomponents(matrixfactorizationproblems)23.Modelselectionandevaluation23Cross-validation:evaluatingestimatorperformance23GridSearch:Searchingforestimatorparameters25Pipeline:chainingestimators26FeatureUnion:Combiningfeatureextractors27.Modelevaluation:quantifyingthequalityofpredictions27.Modelpersistence30.Validationcurves:plottingscorestoevaluatemodels3031Preprocessingdata31RandomProjection35簡介:scikit-learn是一個用于機器學(xué)習(xí)的Python模塊,建立在SciPy基礎(chǔ)之上。主要特點:操作簡單、高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析無訪問限制,在任何情況下可重新使用建立在NumPy、SciPy和matplotlib基礎(chǔ)上使用商業(yè)開源協(xié)議--BSD許可證scikit-learn安裝:(ubuntu版本14.04.1)安裝依賴:sudoapt-getinstallbuild-essentialpython-devpython-numpypython-setuptoolspython-scipylibatlas-devlibatlas3-basepython-matplotlib安裝pipsudoapt-getinstallpython-pip安裝scikit-learnsudopipinstall-Uscikit-learn標(biāo)準(zhǔn)庫Classification.監(jiān)督學(xué)習(xí)廣義線性模型:普通最小二乘法:無偏估計的通過計算最小二乘的損失函數(shù)的最小值來求得參數(shù)得出模型通常用在觀測有誤差的情況,解決線性回歸問題
y(w,x)=w0w1x1.…wpxp求實際觀測值與預(yù)測值差的平方最小值數(shù)學(xué)公式:minl|Xw-y||22w是由sklearn.linear_model模塊中的LinearRegression類實現(xiàn)回歸#默認(rèn)值為True,表示#默認(rèn)值為True,表示sklearn.linear_model.LinearRegression(fit_intercept=True計算隨機變量,F(xiàn)alse表示不計算隨機變量表示在回歸前是否對回歸因子X表示在回歸前是否對回歸因子X進行歸一化,,normalize=False#默認(rèn)值為False,True表示是,copy_X=True)LinearRegression的屬性有:,copy_X=True)LinearRegression的屬性有:coef_^Dintercept—。coef_存儲w1到Wp的值,與X的維數(shù)一致。intercept—存儲Wo的值。LinearRegression的常用方法有:decision_function(X)#返回decision_function(X)#返回X的預(yù)測值yfit(X,y[,n_jobs])#擬合模型fit(X,y[,n_jobs])#擬合模型get_params([deep])#獲取LinearRegression構(gòu)造方法的參數(shù)信息get_params([deep])#獲取LinearRegression構(gòu)造方法的參數(shù)信息predict(X)#求預(yù)測值#同decisionfunctionscore(X,y[,sample_weight])#計算公式為1-score(X,y[,sample_weight])#計算公式為1-ytrue-ypre(ytrue-ytruemean//set_params(**params)#設(shè)置LinearRegression構(gòu)造方法的參數(shù)值set_params(**params)參考示例:fromsklearnimportlinear_modelX=[[0,0],[1,1],[2,2]]y=[0,1,2]clf=linear_model.LinearRegression()clf.fit(X,y)printclf.coef_ercept_printclf.predict([[3,3]])
printclf.decision_function(X)printclf.score(X,y)printclf.get_params()printclf.set_params(fit_intercept=False)普通最小二乘法的復(fù)雜性:2假設(shè)影響因素x為一個n行p列的矩陣那么其算法復(fù)雜度為O(np)假設(shè)n-p缺點:要求每個影響因素相互獨立,否則會出現(xiàn)隨機誤差?;貧w用于解決預(yù)測值問題Ridge回歸有偏估計的,回歸系數(shù)更符合實際、更可靠,對病態(tài)數(shù)據(jù)的擬合要強于最小二乘數(shù)學(xué)公式:m數(shù)學(xué)公式:mWn區(qū)w-乂r+3酬22口>=0,口越大,w值越趨于一致改良的最小二乘法,增加系數(shù)的平方和項和調(diào)整參數(shù)的積是由sklearn.linear_model模塊中的Ridge類實現(xiàn)Ridge回歸用于解決兩類問題:一是樣本少于變量個數(shù),二是變量間存在共線性#公式中值的值,默認(rèn)為#公式中值的值,默認(rèn)為1.0,fit_intercept=True,normalize=False,copy_X=True,maxiter=None#共軻梯度求解器的最大迭代次數(shù),maxiter=None#共軻梯度求解器的最大迭代次數(shù),tol=0.001#默認(rèn)值0.001,solver='auto')Ridge回歸復(fù)雜性:同最小二乘法使用:fromsklearnimportlinear_modelX=[[0,0],[1,1],[2,2]]y=[0,1,2]clf=linear_model.Ridge(alpha=0.1)clf.fit(X,y)printclf.coef_ercept_printclf.predict([[3,3]])printclf.decision_function(X)printclf.score(X,y)printclf.get_params()printclf.set_params(fit_intercept=False)調(diào)整參數(shù)設(shè)置(a):通過廣義交叉驗證的方式(RidgeCV)設(shè)置調(diào)整參數(shù)RidgeCV構(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=Fals4)使用示例:fromsklearnimportlinear_modelX=[[0,0],[1,1],[2,2]]y=[0,1,2]clf=linear_model.RidgeCV(alpha=[0.1,1.0,10.0])clf.fit(X,y)printclf.coef_ercept_printclf.predict([[3,3]])printclf.decision_function(X)printclf.score(X,y)printclf.get_params()printclf.set_params(fit_intercept=False)Lasso2nsamples2nsamples2||Xw-y||2+?||wmin
w數(shù)學(xué)公式:估計稀疏系數(shù)的線性模型適用于參數(shù)少的情況,因其產(chǎn)生稀疏矩陣,可用與特征提取實現(xiàn)類是Lasso,此類用于監(jiān)督分類較好的解決回歸分析中的多重共線性問題思想:在回歸系數(shù)的絕對值之和小于一個常數(shù)的約束條件下,使殘差平方和最小化使用:clf=linear_model.Lasso(alpha=0.1)設(shè)置調(diào)整參數(shù)(a):交叉驗證:LassoCV(適用于高維數(shù)據(jù)集)或LassoLarsCV(適合于樣本數(shù)據(jù)比觀察數(shù)據(jù)小很多)基于模式選擇的信息標(biāo)準(zhǔn):LassoLarsIC(BIC/AIC)ElasticNet是一個使用L1和L2訓(xùn)練的線性模型,適合于在參數(shù)很少的情況下(如Lasso)并保持Ridge性能的情況,既是多種影響因素依賴與另外一種因素。繼承Ridge的旋轉(zhuǎn)穩(wěn)定性。1.H2ra(1-P)??2mwn2lXw—y2+"|端+—2-^llwL新學(xué)走次#-2nsamples2fromsklearn.linear_modelimportElasticNetenet=ElasticNet(alpha=alpha,l1_ratio=0.7)求取”和P的值使用ElasticNetCVMulti-taskLasso用于估計y值不是一元的回歸問題用于估計聯(lián)合多元回歸問題的稀疏系數(shù),y是一個2維矩陣(n_samples,n_tasks)。對于所有的回歸問題,選的的因素必須相同,也叫tasks。使用:clf=linear_model.MultiTaskLasso(alpha=0.1)LeastAngleRegression是一個計算高維數(shù)據(jù)的回歸算法。實現(xiàn)類是sklearn.linear_model中的Lars類優(yōu)點:當(dāng)維數(shù)大于點數(shù)的時候在上下文中是有效的復(fù)雜度和最小二乘相同,但計算很快產(chǎn)生一個分片解決方案路徑用于交叉驗證或相似的調(diào)整模型方法如果兩個變量響應(yīng)相關(guān),則會有相同的增長率很融合修改變成其他的評估方法缺點:噪聲敏感使用:clf=linear_model.Lars(n_nonzero_coefs=1)LARSLasso是一個使用LARS算法實現(xiàn)的lasso模型。使用:clf=linear_model.LassoLars(alpha=0.01)OMP(OrthogonalMatchingPursuit)通過固定的非零元素數(shù)得到最優(yōu)解OMP基于貪心算法實現(xiàn),每一步的原子項都與殘余高度相關(guān)。使用:omp=OrthogonalMatchingPursuit(n_nonzero_coefs=n_nonzero_coefs)omp_cv=OrthogonalMatchingPursuitCV()貝葉斯回歸(BayesianRegression)可以再估計過程包含正則化參數(shù),參數(shù)可以手動設(shè)置,用于估計概率回歸問題優(yōu)點:適用于手邊數(shù)據(jù)可用于在估計過程中包含正規(guī)化參數(shù)缺點:耗時BayesianRidgeRegression:BayesianRidge用于估計回歸問題的概率模型用法:clf=linear_model.BayesianRidge()Bydefault=or2=丸=M=ARD(AutomaticRelevanceDetermination):類似于BayesianRidgeRegression,但可產(chǎn)生稀疏的w值用法:clf=ARDRegression(compute_score=True)邏輯回歸可以做概率預(yù)測,也可用于分類僅能用于線性問題通過計算真實值與預(yù)測值的概率,然后變換成損失函數(shù),求損失函數(shù)最小值來計算模型參數(shù)從而得出模型使用:clf_l1_LR=LogisticRegression(C=C,penalty='l1',tol=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)SGD(StochasticGradientDescent)用于樣本數(shù)據(jù)非常大的情況由SGDClassifier和SGDRegressor使用:clf=linear_model.SGDRegressor()clf=linear_model.SGDClassifier()對于SGDClassifier,當(dāng)10ss="10g寸擬合成一個邏輯回歸模型,當(dāng)10ss="hinge寸擬合成一個線性支持向量機Perceptron是另一個大規(guī)模學(xué)習(xí)的算法不需要學(xué)習(xí)率不是正則的只有錯誤的時候更新模型使用:同SGDClassifierPassiveAggressiveAlgorithms不要求學(xué)習(xí)率的時候同Perceptron,與Perceptron不同的是包含正則參數(shù)C使用:同SGDClassifierRANSAC(RANdomSAmpleConsensus)是一個從完整數(shù)據(jù)集中的一個子集中健壯估計參數(shù)的迭代算法,是非確定性算法,此算法把數(shù)據(jù)分成很多子集,根據(jù)子集估計算法步驟:(1)從原始數(shù)據(jù)中選擇最小的隨機樣本,并檢查數(shù)據(jù)時候有效(is_data_valid)(2)根據(jù)(1)的隨機子集擬合模型(base_estimator.fit),并檢查模型是否有效(is_model_valid)(3)通過計算估計模型的方法來分類數(shù)據(jù)(4)如果臨近樣本數(shù)是最大的,并且當(dāng)前的評估模型有同樣的數(shù)則保存模型為最優(yōu)模型。使用:model_ransac=linear_model.RANSACRegressor(linear_model.LinearRegression())多項式回歸機器學(xué)習(xí)中的常見模式,使用線性模型訓(xùn)練數(shù)據(jù)的非線性函數(shù)支持向量機擬合出來的模型為一個超平面解決與樣本維數(shù)無關(guān),適合做文本分類解決小樣本、非線性、高維是用于分類、回歸、孤立點檢測的監(jiān)督學(xué)習(xí)方法的集合。優(yōu)點:有效的高維空間維數(shù)大于樣本數(shù)的時候仍然有效在決策函數(shù)中使用訓(xùn)練函數(shù)的子集通用(支持不同的內(nèi)核函數(shù):線性、多項式、s型等)缺點:不適用于特征數(shù)遠(yuǎn)大于樣本數(shù)的情況不直接提供概率估計接受稠密和稀疏的輸入Classification由SVC、NuSVC或LinearSVC實現(xiàn),可進行多類分類LinearSVC只支持線性分類SVC和NuSVC實現(xiàn)一對一,LinearSVC實現(xiàn)一對多使用:clf=svm.SVC()^^^^^lin_c]f^svm.LinearSVC(^^^^^^^^^^^^^^^^^^^^^^^^^^^SVC、NuSVC和LinearSVC土勻無support_、support_vectors_^Dn_support_MI4
回歸支持向量分類的方法也支持向量回歸,有SVR和NuSVR,同分類一樣,只是y向量需要是浮點數(shù)使用:clf=svm.SVR()Densityestimation,noveltydetection由OneClassSVM實現(xiàn),是非監(jiān)督學(xué)習(xí),只需要一個X矩陣,沒有類標(biāo)簽O(rif€aO(rif€aturejX"J‘飛工飛:如二:'?;";噌;[and隨機梯度下降應(yīng)用于大量稀疏的機器學(xué)習(xí)問題,輸入數(shù)據(jù)為稀疏的常用于文本分類和自然語言處理是處理大樣本數(shù)據(jù)的非常有效的方法優(yōu)點:局效易于實施缺點:需要一些調(diào)整參數(shù)對尺度特征敏感Classification使用SGDClassifier實現(xiàn),擬合參數(shù)為X[n_samples,n_features]和y[N_samples]可以實現(xiàn)多類分類,此時是通過多個binary分類實現(xiàn)實現(xiàn)方式是one-vs-all(OVA),每個binary分類把其中一個分出來,剩下的作為一個。測試的時候計算每一個分類器的得分并選擇得分最高的Regression由SGDRegressor實現(xiàn)復(fù)雜度X為(n,p),則復(fù)雜度為O(knp)
最近鄰無監(jiān)督的最近鄰是其他學(xué)習(xí)方法的基礎(chǔ),監(jiān)督的近鄰學(xué)習(xí)分為:分類(數(shù)據(jù)有離散標(biāo)記)和回歸(數(shù)據(jù)有連續(xù)標(biāo)記)最近鄰分類:計算待分類樣本與訓(xùn)練樣本中各個類的距離,求出距離最小的K緊鄰是求出k個最小的,然后計算分別屬于某一類的個數(shù),選個數(shù)最大的類,若相等則選擇跟訓(xùn)練集中的序列有關(guān)近鄰分類:解決離散數(shù)據(jù)近鄰回歸:解決連續(xù)數(shù)據(jù)無監(jiān)督的最近鄰由NearestNeighbors實現(xiàn),在sklearn.neighbors中,有三種算法:ball_tree(BallTree)、kd_tree(KDTree)、brute(brute-force)、auto(默認(rèn))fromsklearn.neighborsimportNearestNeighborssklearn.neighbors.NearestNeighbors(n_neighbors=5,radius=1.0,algorithm='auto'fromsklearn.neighborsimportNearestNeighborssklearn.neighbors.NearestNeighbors(n_neighbors=5,radius=1.0,algorithm='auto'kd_tree、brute、auto),leaf_size=30#鄰居數(shù),默認(rèn)為5#參數(shù)空間范圍,默認(rèn)值為1.0#用于計算最近鄰的算法(ball_tree、#傳遞給BallTree或KDTree葉大小,metric='minkowski',P=2,metric_params=None,**kwargs)使用:nbrs=NearestNeighbors(n_neighbors=2,algorithm='ball_tree').fit(X)distances,indices=nbrs.kneighbors(X)KDTreeandBallTree使用: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最近鄰分類是基于實例的非泛華學(xué)習(xí),有兩種不同的最近鄰分類:KNeighborsClassifier和RadiusNeighborsClassifier(非均勻采樣時比較合適)k高度依賴與數(shù)據(jù)#鄰居數(shù),默認(rèn)為5#用于預(yù)測的權(quán)重方法#用于計算最近鄰的算#k高度依賴與數(shù)據(jù)#鄰居數(shù),默認(rèn)為5#用于預(yù)測的權(quán)重方法#用于計算最近鄰的算#傳遞給BallTree或##用于樹的度量距離#度量參數(shù),weights='uniform',algorithm='auto'法(ball_tree、kd_tree、brute、auto),leaf_size=30KDTree葉大小,P=2,metric='minkowski',metric_params=None,**kwargs)使用:fromsklearn.neighborsimportKNeighborsClassifierneigh=KNeighborsClassifier(n_neighbors=3)neigh.fit(X,y)RadiusNeighborsClassifier:實現(xiàn)基于給定的半徑r內(nèi)的鄰居數(shù)。用于不是均勻采樣的數(shù)據(jù),不適合高維參數(shù)空間的數(shù)據(jù)#參數(shù)空間范圍##參數(shù)空間范圍#用于計算最近鄰的#傳遞給BallTree或#用于樹的度量距離#離散群體的標(biāo)簽#度量參數(shù),weights='uniform',algorithm='auto'算法(ball_tree、kd_tree、brute、auto),leaf_size=30KDTree葉大小,P=2,metric='minkowski',outlier_label=None,metric_params=None,**kwargs)
使用:fromsklearn.neighborsimportRadiusNeighborsClassifierneigh=RadiusNeighborsClassifier(radius=1.0)neigh.fit(X,y)近鄰回歸近鄰回歸用于標(biāo)記數(shù)據(jù)是連續(xù)的情況,有兩種不同的最近鄰分類:RadiusNeighborsRegressorKNeighborsRegressor:實現(xiàn)k近鄰,k是一個用戶輸入的整數(shù)sklearn.neighbors.KNeighborsRegressor(n_neighbors=5,weights='uniform'法,algorithm='auto'法(ball_tree、kd_tree、brute、auto),leaf_size=30KDTree葉大小,P=2,metric='minkowski',metric_params=None,**kwargs)使用:fromsklearn.neighborsimportKNeighborsRegressorneigh=KNeighborsRegressor(n_neighbors=3)neigh.fit(X,y)RadiusNeighborsRegressor:實現(xiàn)基于給定的半徑r內(nèi)的鄰居數(shù)。sklearn.neighbors.RadiusNeighborsRegressor(radius=1.0,weights='uniform',algorithm='auto'算法(ball_tree、kd_tree、brute、auto),leaf_size=30KDTree葉大小,P=2KNeighborsRegressor和#KNeighborsRegressor和#鄰居數(shù),默認(rèn)為5#用于預(yù)測的權(quán)重方#用于計算最近鄰的算#傳遞給BallTree或##用于樹的度量距離#度量參數(shù)#參數(shù)空間范圍#用于計算最近鄰的#傳遞給BallTree或#用于樹的度量距離,outlier_label=None#離散群體的標(biāo)簽,metric_params=None#度量參數(shù),**kwargs)使用:fromsklearn.neighborsimportRadiusNeighborsRegressorneigh=RadiusNeighborsRegressor(radius=1.0)neigh.fit(X,y)最近鄰算法BruteForce搜索時通過sklearn.neighbors中的algorithm參數(shù)設(shè)置為‘brut喚現(xiàn),計算是通過sklearn.metrics.pairwise此種方法計算效率低,D維空間的N個樣本時間復(fù)雜度為0QN2]K-DTree為了解決BruteForce計算效率低的問題,通過減少計算距離所需的數(shù)據(jù)實現(xiàn),思想是:如果A距離B非常遠(yuǎn),B距離C非常近,那么認(rèn)為A與C距離非常遠(yuǎn)而不需要進行計算。相比于BruteForce,時間復(fù)雜度降低為。口二丫虱八01但高維數(shù)據(jù)空間效率低BallTree解決K-DTree高維空間效率低的問題最近鄰算法選擇N為樣本數(shù),D為維數(shù),k表示鄰居數(shù)當(dāng)N《=30的時候選擇BruteForce比較合適數(shù)據(jù)集結(jié)構(gòu)化的時候,選擇K-DTree或K-DTree當(dāng)k相當(dāng)于與N來說變得非常大時選擇BruteForce如果查詢點數(shù)少時BruteForceleaf_size的影響1)影響構(gòu)建樹的時間,leaf_size越大,構(gòu)建樹時間越短2)影響查詢時間,leaf_size最合適的值為303)影響內(nèi)存,隨著leaf_size的增大,存儲內(nèi)存減小NearestCentroidClassifier構(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,2,2,2])clf=NearestCentroid()clf.fit(X,y)GaussianProcessesGPML是一種監(jiān)督學(xué)習(xí)方法,主要用于解決回歸問題,已經(jīng)擴展到概率分類,但目前的研究只是一個回歸練習(xí)的后處理優(yōu)點:預(yù)測插值觀測預(yù)測是概率的,可以預(yù)測經(jīng)驗置信空間,改變預(yù)測值通用缺點:非離散高維空間效率低分類僅僅是一個后處理實現(xiàn)類是GaussianProcess構(gòu)造方法:sklearn.gaussian_process.GaussianProcess(regr='constant'#回歸函數(shù)返回信息,corr='squared_exponential'#自相關(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)使用:importnumpyasnpfromsklearn.gaussian_processimportGaussianProcessX=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)Crossdecomposition包括兩類算法PLS和CCA,用于計算兩個多變數(shù)據(jù)集的線性相關(guān),需要擬合的多變集X和丫是2D數(shù)組當(dāng)預(yù)測矩陣比實際數(shù)據(jù)有更多的變量時適合用PLSNaiveBayesNaiveBayes方法是監(jiān)督學(xué)習(xí)的集合基于假設(shè)每對特征之間都是獨立的貝葉斯理論樸素貝葉斯方法是基于貝葉斯理論并假設(shè)每個特征都是獨立的應(yīng)用于文檔分類和垃圾郵件過濾需要訓(xùn)練數(shù)據(jù)比較少樸素貝葉斯通過計算屬于每個類的概率并取概率最大的類作為預(yù)測類naiveBayesisadecentclassifier,butabadestimatorGaussianNaiveBayes實現(xiàn)分類的是高斯貝葉斯算法是實現(xiàn)類GaussianNB構(gòu)造方法:sklearn.naive_bayes.GaussianNBclass_prior_theta_sigma_GaussianNB類構(gòu)造方法無參數(shù),屬性值有:class_prior_theta_sigma_#每一個類的概率#每個類中各個特征的平均#每個類中各個特征的方差示例:
importnumpyasnpX=np.array([[-1,-1],[-2,-1],[-3,-2],[1,1],[2,1],[3,2]])Y=np.array([1,1,1,2,2,2])fromsklearn.naive_bayesimportGaussianNBclf=GaussianNB()clf.fit(X,Y)GaussianNB類無score方法MultinomialNaiveBayes用于文本分類用于處理多項離散數(shù)據(jù)集的NaiveBayes算法的類是MultinomialNB構(gòu)造方法:sklearn.naive_bayes.MultinomialNB(alpha=1.0#平滑參數(shù),fit_prior=True#學(xué)習(xí)類的先驗概率,class_prior=None)#類的先驗概率示例:importnumpyasnpX=np.random.randint(5,size=(6,100))y=np.array([1,2,3,4,5,6])fromsklearn.naive_bayesimportMultinomialNBclf=MultinomialNB()clf.fit(X,y)BernoulliNB#平滑參數(shù)BernoulliNB#平滑參數(shù)#樣本特征#學(xué)習(xí)類的先驗#類的先驗概率處理根據(jù)multivariateBernoulli離散的訓(xùn)練和分類數(shù)據(jù)算法,實現(xiàn)類是構(gòu)造方法:sklearn.naive_bayes.BernoulliNB(alpha=1.0,binarize=0.0閾值二值比,fit_prior=True概率,class_prior=None)示例:importnumpyasnpX=np.random.randint(2,size=(6,100))Y=np.array([1,2,3,4,4,5])fromsklearn.naive_bayesimportBernoulliNBclf=BernoulliNB()DecisionTrees是一個無參數(shù)的分類和回歸的監(jiān)督學(xué)習(xí)方法,目標(biāo)是創(chuàng)建一個模型用于預(yù)測目標(biāo)變量的值,通過學(xué)習(xí)從數(shù)據(jù)特征中推斷出來的簡單規(guī)則。優(yōu)點:易于理解只需要很少的準(zhǔn)備數(shù)據(jù)復(fù)雜度是數(shù)據(jù)點數(shù)的對數(shù)能夠同時處理數(shù)值和分類數(shù)據(jù)能夠處理多輸出問題采用白盒模型使用統(tǒng)計測試可以驗證模型即使假設(shè)有點錯誤也可以表現(xiàn)很好缺點:可以創(chuàng)建復(fù)雜樹但不能很好的推廣不穩(wěn)定是NP問題有很難學(xué)習(xí)的概念如果一些類占主導(dǎo)地位創(chuàng)建的樹就有偏差分類實現(xiàn)類是DecisionTreeClassifier,能夠執(zhí)行數(shù)據(jù)集的多類分類輸入?yún)?shù)為兩個數(shù)組X[n_samples,n_features]和y[n_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,compute_importances=None,max_leaf_nodes=None)DecisionTreeClassifier示例:fromsklearnimporttreeX=[[0,0],[1,1]]丫=[0,1]clf=tree.DecisionTreeClassifier()clf=clf.fit(X,Y)回歸實現(xiàn)類是DecisionTreeRegressor,輸入為X,y同上,y為浮點數(shù)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_nodes=None)DecisionTreeRegressor示例:fromsklearnimporttreeX=[[0,0],[2,2]]y=[0.5,2.5]clf=tree.DecisionTreeRegressor()clf=clf.fit(X,y)clf.predict([[1,1]])多輸出問題實現(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_state=None,min_density=None,compute_importances=None,max_leaf_nodes=None)DecisionTreeClassifier示例:fromsklearn.datasetsimportload_irisfromsklearn.cross_validationimportcross_val_scorefromsklearn.treeimportDecisionTreeClassifierclf=DecisionTreeClassifier(random_state=0)iris=load_iris()cross_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_nodes=None)DecisionTreeRegressor示例:fromsklearn.datasetsimportload_bostonfromsklearn.cross_validationimportcross_val_scorefromsklearn.treeimportDecisionTreeRegressorboston=load_boston()regressor=DecisionTreeRegressor(random_state=0)cross_val_score(regressor,boston.data,boston.target,cv=10)復(fù)雜度。(門已Jh&mpieJ。由,%也四33))Ensemblemethods目標(biāo)是結(jié)合幾種單一的估計方法進行預(yù)測值以提高通用和健壯性兩種方式:1)多種組合方法單獨進行估計,平均其得分2)多種組合方法逐一估計Baggingmeta-estimator實現(xiàn)類有BaggingClassifier(用于分類)和BaggingRegressor(用于回歸)BaggingClassifier構(gòu)造方法:sklearn.ensemble.BaggingClassifier(base_estimator=None,n_estimators=10,max_samples=1.0,max_features=1.0,boots
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運動器材銷售協(xié)議書
- 2024年投資居間服務(wù)協(xié)議
- 2024年建筑施工領(lǐng)域勞務(wù)協(xié)議
- 2024年技術(shù)創(chuàng)新項目轉(zhuǎn)讓與投資協(xié)議
- 個人申請辭職申請書(8篇)
- 輔導(dǎo)員講話稿范文8篇
- 泡泡游戲教案6篇2
- 健身行業(yè)股東合作協(xié)議書
- 環(huán)保項目安全文明施工合作協(xié)議
- 2024至2030年中國聚乙烯復(fù)合包裝基材膜數(shù)據(jù)監(jiān)測研究報告
- 護理腫瘤溶解綜合癥
- 騰訊營銷師認(rèn)證考試題庫(附答案)
- 我的生涯發(fā)展
- 銀行存款業(yè)務(wù)課件
- 2024年揚州市職業(yè)大學(xué)高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2024年全國初中數(shù)學(xué)競賽試題及答案
- 安防監(jiān)控系統(tǒng)技術(shù)標(biāo)投標(biāo)書范本-圖文
- 倉庫衛(wèi)生和清潔要求
- 上海家政行業(yè)報告
- 《咖啡培訓(xùn)課程》課件
- 2024年中糧集團中糧貿(mào)易有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論