




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第九章AdaBoost
學習目標通過本章學習可以:掌握Boosting算法的思想掌握AdaBoost算法的基本原理掌握AdaBoost的scikit-learn應用方法BoostingAdaBoost原理AdaBoost的scikit-learn實現應用案例集成學習通過將多個單個學習器集成/組合在一起,使它們共同完成學習任務,以達到提高預測準確率的目的。Bagging:核心思想是對訓練集進行有放回地抽取,從而為每一個基本分類器都構造出一個同樣大小但各不相同的的訓練集,從而訓練出不同的基分類器。代表算法是隨機森林。Boosting:是一種可以用來減小監督學習中偏差的機器學習算法。在分類問題中,它通過改變訓練樣本的權重,學習多個分類器,并將這些分類器進行線性組合,提升分類的性能。代表算法有Adaboost和GradientBoostingTree(GBDT)?;仡櫍杭蓪W習Boosting的主要作用跟bagging類似也是一種把若干個基分類器整合為一個分類器的方法。Boosting是一個順序過程,每個后續模型都會嘗試糾正先前模型的錯誤,后續的模型依賴于之前的模型。Boosting的基本思想先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練樣本分布進行調整,使得先前基學習器做錯的訓練樣本在后續受到更多的關注,然后基于調整后的樣本分布來訓練下一個基學習器;如此重復進行,直至基學習器數目達到事先指定的值T,最終將這T個基學習器進行加權結合。Boosting的工作機制樣本權重分類器權重優化學習器修正樣本權重Boosting是一個迭代的過程,通過改變訓練樣本的分布,使得基分類器聚焦在那些很難分的樣本上。不像bagging,Boosting給每一個訓練樣本賦予一個權值,而且可以在每一輪提升過程結束時自動地調整權值。Boosting結合了很多弱學習器來形成一個強學習器,單個模型表現不佳,但它們在數據集的某些部分表現很好。因此,每個模型實際上提升了集成的整體性能。訓練樣本的權值可以用于以下方面:可以用作抽樣分布,從原始數據集中提取出自主樣本集。基學習器可以使用權值學習有利于高權值樣本的模型。Boosting提升的理解偏差-方差Boosting:降低偏差。Bagging:降低方差。樣本選擇:Boosting:每一輪的訓練集不變,只是訓練集中每個樣本的權重發生變化,權值根據上一輪的預測結果進行調整。Bagging:訓練集是在原始集中有放回抽取的,從原始集中選出的訓練集之間是獨立的。樣本權重:Boosting:根據錯誤率不斷調整樣本的權值,錯誤率越大則權值越大。Bagging:每個樣本的權重相等。Bagging與Boosting區別(1)基學習器權重:Boosting:每個弱學習器都有相應的權重,對于誤差小的學習器會有更大的權重。Bagging:弱學習器的權重可以相等也可以賦予權重。串、并行計算:Boosting:串行,各個及學習器順序生成,因為后一個模型參數依賴于前一輪模型的預測結果。Bagging:各個學習器可以并行生成。Bagging與Boosting區別(2)BoostingAdaBoost原理AdaBoost的scikit-learn實現應用案例Boosting族算法最著名的代表是AdaBoost[FreundandSchapire,1997]。AdaBoost:AdaptiveBoosting,自適應提升。Adaboost采用迭代的思想,繼承了Boosting算法,每次迭代只訓練一個弱學習器,訓練好的弱學習器將參與下一次迭代。也就是說,在第N次迭代中,一共有N個弱學習器,其中N-1個是以前訓練好的,其各種參數都不會改變,本次訓練第N個學習器。其中弱學習器的關系是第N個弱學習器更可能分對前N-1個弱學習器沒分對的數據,最終分類輸出要看這N個分類器的綜合效果。AdaBoost1.如何改變訓練樣本分布?2.采用什么樣的結合策略來將基學習器結合成一個強學習器?針對第一個問題,AdaBoost提高那些被前一輪基學習器錯誤分類的樣本的權值,降低那些被正確分類的樣本的權值;針對第二個問題,AdaBoost對所有基學習器采用加權結合,增大分類誤差小的基學習器的權值,減少分類錯誤率大的基學習器的權值。AdaBoost的兩個關鍵問題
二分類算法原理(1)
二分類算法原理(2)
二分類算法原理(3)
直接將Adaboost算法應用于多類分類問題往往不能得到令人滿意的結果。針對這個問題,ZhuJi等人在2009年提出了SAMME及SAMME.R算法,這也是sklearn中用Adaboost做多類分類問題時采用的算法。兩者的主要區別是弱學習器權重的度量。SAMME是二分類Adaboost算法的擴展,即用對樣本集分類效果作為弱學習器權重,而SAMME.R使用了對樣本集分類的預測概率大小來作為弱學習器權重。由于SAMME.R使用了概率度量的連續值,迭代一般比SAMME快,因此AdaBoostClassifier的默認算法algorithm的值也是SAMME.R。多分類問題
SAMME算法原理
SAMME.R算法原理SAMME.R使用概率估計來更新增加模型,而SAMME只使用分類。SAMME.R算法通常比SAMME更快地收斂,通過更少的提升迭代實現較低的測試誤差。每一次提升迭代后,測試集上各算法的誤差顯示左側圖,每一棵樹的測試集上的分類誤差顯示在中間,每一棵樹的boost權重顯示為右側圖。在SAMME.R算法中,所有樹的權重都是1,因此沒有顯示。SAMME和SAMME.R對比
回歸算法原理(1)
回歸算法原理(2)
回歸算法原理(3)
回歸算法原理(4)
優點:Adaboost是一種有很高精度的分類器可以使用各種方法構建弱學習器分類器弱學習器構造比較簡單不用做特征篩選泛化能力好,不用擔心overfitting(過擬合)缺點:容易受到噪聲干擾訓練時間長執行效果依賴于弱學習器的選擇AdaBoost優缺點BoostingAdaBoost原理AdaBoost的scikit-learn實現應用案例類庫介紹:AdaBoostClassifier用于分類,AdaBoostRegressor用于回歸。AdaBoostClassifier使用了兩種Adaboost分類算法的實現,SAMME和SAMME.R。而AdaBoostRegressor則使用了Adaboost.R2(和前面原理一致)。Adaboost調參:主要從兩方面進行調參,一是對Adaboost的框架進行調參,二是對選擇的弱分類器進行調參,兩者相輔相成。AdaBoost的scikit-learn實現(1)base_estimator:弱分類學習器或者弱回歸學習器。AdaBoostClassifier默認使用CART分類樹DecisionTreeClassifier,而AdaBoostRegressor默認使用CART回歸樹DecisionTreeRegressor。(2)algorithm:這個參數只有AdaBoostClassifier有。scikit-learn實現了兩種Adaboost分類算法,SAMME和SAMME.R。兩者的主要區別是弱學習器權重的度量。AdaBoostClassifier的默認算法是SAMME.R。(3)loss:這個參數只有AdaBoostRegressor有,Adaboost.R2算法會用到。有線性‘linear’,平方‘square’和指數‘exponential’三種選擇,默認是線性。框架參數(1)(4)n_estimators:AdaBoostClassifier和AdaBoostRegressor都有,弱學習器的最大迭代次數,或者說最大的弱學習器的個數。一般來說n_estimators太小,容易欠擬合,n_estimators太大,又容易過擬合,一般選擇一個適中的數值。默認是50。(5)learning_rate:AdaBoostClassifier和AdaBoostRegressor都有,即每個弱學習器的權重縮減系數ν,ν的取值范圍為0<ν≤1,默認是1。對于同樣的訓練集擬合效果,較小的ν意味著需要更多的弱學習器的迭代次數。通常我們用步長和迭代最大次數一起來決定算法的擬合效果??蚣軈担?)(1)max_features:劃分時考慮的最大特征數??梢允褂煤芏喾N類型的值,默認是“None”,意味著劃分時考慮所有的特征數。(2)max_depth:決策樹最大深度。默認可以不輸入,此時,決策樹在建立子樹的時候不會限制子樹的深度。(3)min_samples_split:內部節點劃分所需最小樣本數。默認是2。這個值限制了子樹繼續劃分的條件,如果某節點的樣本數少于min_samples_split,則不會繼續再嘗試選擇最優特征來進行劃分。弱學習器參數(1)(4)min_samples_leaf:葉子節點最少樣本數,默認是1。這個值限制了葉子節點最少的樣本數,如果某葉子節點數目小于樣本數,則會和兄弟節點一起被剪枝。(5)min_weight_fraction_leaf:葉子節點最小的樣本權重和,默認是0,即不考慮權重問題。這個值限制了葉子節點所有樣本權重和的最小值,如果小于這個值,則會和兄弟節點一起被剪枝。(6)max_leaf_nodes:最大葉子節點數,默認是“None”,即不限制最大的葉子節點數。通過限制最大葉子節點數,可以防止過擬合。弱學習器參數(2)BoostingAdaBoost原理AdaBoost的scikit-learn實現應用案例本小節基于Boston波士頓房價數據集利用AdaBoost對房價進行預測。Boston房價預測是一個回歸問題。數據集一共包含506個觀察,13個輸入變量和1個輸出變量。每條數據包含房屋以及房屋周圍的詳細信息。其中包含城鎮犯罪率,一氧化氮濃度,住宅平均房間數,到中心區域的加權距離以及自住房平均房價等等。應用案例導入庫準備數據集數據準備fromsklearn.datasetsimportload_bostonfromsklearn.ensembleimportAdaBoostRegressor#下載數據集boston=load_boston()#定義feature和labelx=boston.datay=boston.targetprint('Featurecolumnname')print(boston.feature_names)print("Sampledatavolume:%d,numberoffeatures:%d"%x.shape)print("Targetsampledatavolume:%d"%y.shape[0])sns.distplot(tuple(y),kde=False,fit=st.norm)定義模型AdaBoost和DecisionTree,在未調參的情況下對比兩者的性能。模型定義和訓練#定義模型名稱names=['DecisionTree','AdaBoost']#定義模型models=[DecisionTreeRegressor(),AdaBoostRegressor(n_estimators=30)]#模型訓練并返回R2值defR2(model,x_train,x_test,y_train,y_test):model_fitted=model.fit(x_train,y_train)y_pred=model_fitted.predict(x_test)score=r2_score(y_test,y_pred)returnscore#輸出模型測試結果forname,modelinzip(names,models):score=R2(model,x_train,x_test,y_train,y_test)print("{}:{:.6f}".format(name,score.mean()))返回結果:DecisionTree:0.461254AdaBoost:0.657742通過網格搜索的方法選擇較好的框架參數。網格搜索#網格搜索選擇較好的框架參數parameters={'n_estimators':[50,60,70,80],'learning_rate':[0.5,0.6,0.7,0.8,0.9],}model=GridSearchCV(AdaBoostRegressor(),param_grid=parameters,cv=3)model.fit(x_train,y_train)#輸出最合適的參數值print("Optimalparameterlist:",model.best_params_)print("Optimalmodel:",model.best_estimator_)print("OptimalR2value:",model.best_score_)返回結果:Optimalparameterlist:{'learning_rate':0.6,'n_estimators':80}Optimalmodel:AdaBoostRegressor(learning_rate=0.6,n_estimators=80)OptimalR2value:0.8356690414326865對通過網格搜索進行調參后的模型的擬合效果進行可視化。擬合效果可視化##可視化模型擬合結果ln_x_test=range(len(x_test))y_predict=model.predict(x_test)plt.figure(figsize=(16,8),facecolor='w')plt.plot(ln_x_test,y_test,'r-',lw=2,label=u'Value')plt.plot(ln_x_test,y_predict,'g-',lw=3,label=u'EstimatedvalueoftheAdaboostalgorithm,$R^2$=%.3f'%(model.best_score_))plt.legend(loc='upperleft')plt.grid(True)plt.title(u"BostonHousingPriceForecast(Adaboost)")plt.xlim(0,101)plt.show()通過本章的學習了解Adaboost算法的基本原理和應用方式,為后續的實際應用提供理論和技術準備??偨Y謝謝第十章聚類學習目標通過本章學習可以:掌握K-Means聚類過程和原理。掌握層次聚類的過程和原理。掌握密度聚類的過程和原理。掌握譜聚類的過程和原理。1.無監督學習2.聚類算法3.
K-Means聚類4.
層次聚類5.密度聚類算法引入我們通常講,物以類聚,人以群分!其實說的就是要依據物和人的關系進行區分。而關系在實際應用場景下,又分為內部相似性和外部關系。前者是觀察的對象或物體本身比較相似,劃分為一類,比如橘子和柚子都屬于水果;后者是指兩種物體經常同時出現,比如牛奶和面包等。而這些就是我們接下來要學習的無監督學習。無監督學習概念無監督學習:是指在標注的數據中,根據數據之間本身的屬性特征和關聯性對數據進行區分,相似相近或關聯性強的數據放在一起,而不相似不相近、關聯性不強的數據不放在一起。無監督學習的本質是:利用無標簽的數據學習數據的分布或數據與數據之間的關系。無監督學習最常應用的場景是部分降維算法、聚類算法和關聯算法。無監督學習導入有監督學習與無監督學習的區別有監督學習中,如分類問題,要求樣本必須有明確的類別信息,其建立的前提是所有待分類項都有一個類別與之對應。但在處理實際問題的過程中,獲取到的數據記錄可能并沒有進行標注,尤其是處理海量數據時,如果通過預處理對數據進行打標,以滿足分類算法的要求,代價非常大。有監督學習中最常見的是分類問題,而無監督學習中最常見的是聚類問題,聚類問題不依賴預定義的類和類標號的訓練實例。關注事物本身的特征分析。比如電商對用戶信息和購買行為數據進行聚類分析,目的是找到大量級的且有一定相似度的客戶群,從而實現用戶畫像,接著針對該用戶群共有的行為特征投放廣告和其他營銷活動。1.無監督學習2.聚類算法3.
K-Means聚類4.
層次聚類5.密度聚類算法聚類分析概念聚類分析是分析研究對象如何按照多個方面的特征進行綜合分類的一種多元統計方法,它是根據物以類聚的思想將相似的樣本歸為一類。把對象分為不同的類別,類別是依據數據的特征確定的。把相似的東西放在一起,類別內部的差異盡可能小,類別之間的差異盡可能的大。作用作為單獨過程,用于對數據進行打標,即數據畫像。作為分類等其他學習任務的前驅過程,如聚類算法可以作為一些監督算法的前驅過程。聚類分析的作用如下兩圖,有什么相同與不同之處?聚類分析兩個基本問題-性能度量性能度量:評價聚類結果的好壞程度。聚類性能度量一般分兩類:外部指標:將聚類結果與某個“參考模型”進行比較,如依據業務專家給出的劃分結果的聚類結果進行評價。內部指標:直接考察聚類結果不利用任何參考模型。聚類分析兩個基本問題-距離計算常用的距離度量方法包括:歐幾里得距離(簡稱歐氏距離)和余弦相似度,兩者都是評定個體間差異的大小的。歐氏距離會受指標不同單位刻度影響,需要先對數據進行標準化,在聚類問題中,如果兩個樣本點的歐氏距離越大,表示兩者差異越大。如下表示兩個??維的樣本點
,
之間的歐氏距離
:余弦相似度不會受指標刻度的影響,余弦值落于區間[-1,1],值越大,差異越小。如
表示樣本點
的余弦相似度,此時將樣本點看作??維向量處理。聚類算法應用場景-行業(1)離群點檢測離群點檢測是數據挖掘中重要應用,任務就是發現與大部分觀察對象顯著不同的對象,很多的數據挖掘方法會將這種差異信息視作噪聲進行預處理,但也有的一些應用場景中,離群點本身攜帶有重要的異常信息,是需要被關注和研究的。離群點檢測已經被廣泛應用于電信、信用卡詐騙檢測,貸款審批,電子商務,網絡入侵和天氣預報等領域,甚至可以利用離群點檢測分析運動員的統計數據,以發現異常運動員。應用方式:利用聚類算法,找到遠離其他簇的小簇;首先聚類所有對象,然后評估對象屬于簇的程度,對不同距離的點進行打分。聚類算法應用場景-行業(2)用戶畫像構建方面:根據客戶數據,將相似性較高的客戶聚為一類,打標簽,進行客戶類別細分。業務推薦和精準營銷方面:通過構建用戶畫像進行業務推薦和精準營銷。常用聚類算法介紹基于原型聚類(partitioningmethods)K-Means算法,K-Mediods算法基于層次聚類(hierarchicalmethods)HierarchicalClustering算法、BIRCH算法基于密度聚類(density-basedmethods)DBSCAN算法1.無監督學習2.聚類算法3.K-Means聚類4.
層次聚類5.密度聚類算法基于原型聚類“原型”是指樣本空間中具有代表性的點。原型聚類假設聚類結構可以通過一組原型刻畫,這一方法在實際聚類任務中最為常用,理解起來也較簡單;通常算法先對原型進行初始化,然后對原型進行迭代更新求解。采用不同的原型表示,不同的求解方式,即會產生不同的聚類算法。最經典的原型聚類算法即:K-Means聚類算法:基于各個樣本點與各個聚集簇的中心點距離遠近,進行劃分的聚類算法。K-Mediods算法:在K-Means基礎上改進的算法。K-Means聚類算法算法思想輸入聚類個數??,以及包含??個數據對象的數據集,輸出標準的k個聚類的一種算法。然后將??個數據對象劃分為??個聚類,而最終所獲得的聚類滿足:(1)同一聚類中的對象相似度較高;(2)而不同聚類中的對象相似度較小。K-Means聚類算法步驟執行步驟1)選取??個對象作為初始中心(叫質心),作為聚類中心;2)對每個樣本數據,計算它們與中心的歐氏距離,按距離最近的準則將它們分到距離最近的聚類中心所對應的類;3)更新聚類中心:將每個類別中所有對象所對應的均值作為該類別的新中心(新的質心),計算目標函數;4)判斷聚類中心和目標函數的值是否改變,若不變,則輸出結果,若改變,則返回2)。??1=(2,10),??2=(2,5),??3=(8,4),??4=(5,8),??5=(7,5),??6=(6,4),??7=(1,2),??8=(4,9).K-Means聚類-過程舉例(1)K-Means聚類-過程舉例(2)K-Means聚類-K如何確定K-Means算法首先選擇??個初始質心,其中??是用戶指定的參數,即所期望的簇的個數。這樣做的前提是已經知道數據集中包含多少個簇,但很多情況下,我們并不知道數據的分布情況。如何有效地確定??值,提供以下幾種方法:從實際問題出發,人工指定比較合理的??值,通過多次隨機初始化聚類中心選取比較滿意的結果均方根:假設我們有??個樣本,該方法認為??=枚舉法:用不同的??值進行聚類分別計算類內距離均值和類間距離均值之比,選擇最小的那個??值對不同??值都產生2次聚類,選擇兩次聚類結果最相似的??值手肘法(Elbow)、層次聚類法等。K-Means聚類的優缺點優點簡單、易于理解、運算速度快;對處理大數據集,該算法保持可伸縮性和高效性;當簇接近高斯分布時,它的效果較好。缺點在K-Means算法是局部最優的,容易受到初始質心的影響;在K-Means算法中K值需要事先給定的,有時候K值的選定非常難以估計;在簇的平均值可被定義的情況下才能使用,只能應用連續型數據;該算法需要不斷地進行樣本分類調整,不斷地計算調整后的新的聚類中心,因此當數據量非常大時,算法的性能(時間和計算資源)開銷是非常大的;對噪聲和孤立點數據敏感。K-Means聚類-細節解析初始簇心的選擇有時候會影響最終的聚類結果,實際操作中,我們一般會選用不同的數據作為初始簇心,多次執行K-Means算法;新質心不一定是實際的一個數據點。K-Means算法超參數????是用戶指定的參數,即所期望的簇的個數。??指定的前提是已知數據集中包含多少個簇,但很多情況下,并不知道數據的分布情況,需要憑借業務專家的經驗;常見做法是多嘗試幾個??值,看分成幾類的結果更好解釋,更符合分析目的等;或者可以把各種??值算出的SSE做比較,取最小的SSE的??值。K-Means算法會不會陷入一直選質心的過程,永遠停不下來?不會。數學證明一定會收斂,目標函數SSE是可收斂的函數,但數據量大時,收斂時間可能較長。K-Means算法的使用方法(1)利用python調用庫sklearn中的cluster子模塊,該模板包含常用聚類算法模型,如:K-Means,DBSCAN等;sklearn的K-Means方法默認用歐氏距離,雖然還有余弦相似度、曼哈頓距離等多種方法,但沒有設定計算距離方法的參數。K-Means算法的使用方法(2)利用Python中庫sklearn中的sklearn.cluster.KMeans方法KMeans(n_clusters=8,init=’k_means++’,n_init=10,max_iter=300,tol=0.0001,precompute_distances=’auto’,verbose=0,random_state=None,copy_x=True,n_jobs=1,algorithm=’auto’)參數說明n_clusters:用于指定聚類中心的個數,一般調用時只需給出n_clusters的值,如指定??為10,KMeans(n_clusters=10)。init:初始聚類中心的初始化方法,其默認選擇的是K-Means++。max_iter:最大的迭代次數,默認300。K-Means算法優化K-Means算法的結果非常依賴于初始隨機選擇的聚類中心的位置,可以通過多次執行該算法來減少初始中心敏感的影響??刹捎玫膬灮椒ㄓ校?.選擇彼此距離盡可能遠的K個點作為初始簇中心。
2.先使用canopy算法進行初始聚類,得到K個canopy中心,以此或距離每個canopy中心最近的點作為初始簇中心。K-Means應用示例隨機創建一些二維數據作為訓練集,選擇二維特征數據,代碼如下:importnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlinefromsklearn.datasets.samples_generatorimportK-Means應用示例#X為樣本特征,Y為樣本簇類別,共1000個樣本,每個樣本2個特征,共4個簇,簇中心在[-1,-1],[0,0],[1,1],[2,2],簇方差分別為[0.4,0.2,0.2]X,y=make_blobs(n_samples=1000,n_features=2,centers=[[-1,-1],[0,0],[1,1],[2,2]],cluster_std=[0.4,0.2,0.2,0.2],random_state=9)plt.scatter(X[:,0],X[:,1],marker='o')plt.show()K-Means應用示例
創建的數據如下:K-Means應用示例
現在用K-Means聚類方法來做聚類,首先選擇k=2,代碼如下:fromsklearn.clusterimportKMeansy_pred=KMeans(n_clusters=2,random_state=9).fit_predict(X)plt.scatter(X[:,0],X[:,1],c=y_pred)plt.show()K-Means應用示例
效果圖輸出如圖:K-Means應用示例
用Calinski-HarabaszIndex評估的聚類分數:fromsklearnimportmetricsmetrics.calinski_harabaz_score(X,y_pred)輸出如下:3116.1706763322227K-Means應用示例
k=3的聚類效果,代碼如下:fromsklearn.clusterimportKMeansy_pred=KMeans(n_clusters=3,random_state=9).fit_predict(X)plt.scatter(X[:,0],X[:,1],c=y_pred)plt.show()K-Means應用示例
效果圖輸出如圖:K-Means應用示例
用Calinski-HarabazIndex評估的k=3時候聚類分數:
metrics.calinski_harabaz_score(X,y_pred)輸出如下:
2931.625030199556可見此時k=3的聚類分數比k=2還差K-Means應用示例
k=4時候的聚類效果:fromsklearn.clusterimportKMeansy_pred=KMeans(n_clusters=4,random_state=9).fit_predict(X)plt.scatter(X[:,0],X[:,1],c=y_pred)plt.show()K-Means應用示例
效果圖輸出如圖:K-Means應用示例
用Calinski-HarabaszIndex評估的k=4時候聚類分數:
metrics.calinski_harabaz_score(X,y_pred)輸出如下:
5924.050613480169
可見k=4的聚類分數比k=2和k=3都要高,這也符合預期,隨機數據集也就是4個簇K-Means應用示例
用MiniBatchKMeans的效果,將batchsize設置為200.由于的4個簇都是凸的,所以其實batchsize的值只要不是非常的小,對聚類的效果影響不大。forindex,kinenumerate((2,3,4,5)):plt.subplot(2,2,index+1)y_pred=MiniBatchKMeans(n_clusters=k,batch_size=200,random_state=9).fit_predict(X)K-Means應用示例
score=metrics.calinski_harabaz_score(X,y_pred)plt.scatter(X[:,0],X[:,1],c=y_pred)plt.text(.99,.01,('k=%d,score:%.2f'%(k,score)),transform=plt.gca().transAxes,size=10,horizontalalignment='right')plt.show()K-Means應用示例
效果圖輸出如圖:K-Means應用示例
可見:使用MiniBatchKMeans的聚類效果也不錯。當然由于使用MiniBatch的原因,同樣是k=4最優,KMeans類的Calinski-HarabaszIndex分數為5924.05,而MiniBatchKMeans的分數稍微低一些,為5921.45,這個差異損耗并不大。1.無監督學習2.聚類算法3.
K-Means聚類4.
層次聚類5.密度聚類算法層次聚類層次聚類法核心思想是在不同層次對數據集進行劃分,從而形成樹形的聚類結構,數據集的劃分可采用“自下向上”的聚合策略,也可以采用“自頂向下”的分拆策略。聚類的層次被表示成樹形圖。樹根擁有所有樣本的唯一聚類,葉子是僅有一個樣本的聚類。凝聚層次聚類
AGNES算法(AGglomerativeNESting)采用自底向上的策略。最初將每個對象作為一個簇,然后這些簇根據某些準則被一步一步合并,兩個簇間的距離可以由這兩個不同簇中距離最近的數據點的相似度來確定。聚類的合并過程反復進行直到所有的對象滿足簇數目。分裂的層次聚類
DIANA算法(DIvisiveANALysis)采用自頂向下的策略。首先將所有對象置于一個簇中,然后按照某種既定的規則逐漸細分為越來越小的簇(比如最大的歐式距離),直到達到某個終結條件(簇數目或者簇距離達到閾值)。凝聚層次聚類的過程和原理(1)1)計算數據集的相似矩陣;2)假設每個樣本點為一個簇類;3)循環:合并相似度最高的兩個簇類,然后更新相似矩陣;4)當簇類個數為1時,循環終止。凝聚層次聚類的過程和原理(2)假設我們有6個樣本點{A,B,C,D,E,F}第一步:我們假設每個樣本點都為一個簇類,計算每個簇類間的相似度,得到相似矩陣;第二步:若B和C的相似度最高,合并簇類B和C為一個簇類?,F在我們還有五個簇類,分別為A,BC,D,E,F。第三步:更新簇類間的相似矩陣,相似矩陣的大小為5行5列;若簇類BC和D的相似度最高,合并簇類BC和D為一個簇類。現在我們還有四個簇類,分別為A,BCD,E,F。凝聚層次聚類的過程和原理(3)第四步:更新簇類間的相似矩陣,相似矩陣的大小為4行4列;若簇類E和F的相似度最高,合并簇類E和F為一個簇類?,F在我們還有3個簇類,分別為A,BCD,EF。第五步:重復第四步,簇類BCD和簇類EF的相似度最高,合并該兩個簇類;現在我們還有2個簇類,分別為A,BCDEF。第六步:最后合并簇類A和BCDEF為一個簇類,層次聚類算法結束。凝聚層次聚類的過程和原理(4)樹狀圖是類似樹(tree-like)的圖表,記錄了簇類聚合和拆分的順序。我們根據上面的步驟,使用樹狀圖對聚合層次聚類算法進行可視化,以上過程如圖所示。層次聚類由不同層次的分割聚類組成,層次之間的分割具有嵌套的關系。它不需要輸入參數,這是它的一個明顯的優點,其缺點是終止條件必須具體指定。與原型聚類和密度聚類不同,層次聚類試圖在不同的“層次”上對樣本數據集進行劃分,一層一層地進行聚類。典型的分層聚具體有:HierarchicalClustering算法、BIRCH算法等?;趯哟尉垲惓S盟惴ɑ靖拍睿号袛鄡蓚€簇之間的距離(1)基本概念:判斷兩個簇之間的距離(2)計算兩個組合數據點間距離常用的方法是:SingleLinkage,CompleteLinkage和AverageLinkage,3種計算方法解析如下:SingleLinkage是將兩個簇中最近的兩個點間的距離作為這兩個組合數據點的距離,該方法易受極端值的影響,兩個不相似的點可能由于其中的某個極端的點距離較近而組合在一起。CompleteLinkage與SingleLinkage相反,將兩個簇中距離最遠的兩個點間的距離作為這兩個簇的距離,CompleteLinkage的問題也與SingleLinkage相反,兩個相似的點可能某個點原先所在的簇中有極端值而無法組合在一起。AverageLinkage的計算方法是計算兩個簇中的每個點與其他所有點的距離并將所有距離的均值作為兩個組合數據點間的距離,此方法計算量比較大,但結果比前兩種方法更合理?;靖拍睿号袛鄡蓚€簇之間的距離(3)HierarchicalClustering算法簡單易理解。主要思路:確保距離近的點落在同一個簇(cluster)之中,流程如下:將每個對象作為一個簇????={??},形成簇的集合??={??};
迭代以下步驟直至所有對象都在一個族中;找到一對距離最近的簇:min??(????,????);將這對簇合并為一個新的簇;從原集合C中移除這對簇;最終產生層次樹形的聚類結構:樹形圖。HierarchicalClustering算法原理優點:可排除噪聲點的干擾,但有可能噪聲點分為一簇。適合形狀不規則,不要求聚類完全的情況。不必確定??值,可根據聚類程度不同有不同的結果。原理簡單,易于理解。缺點:計算量很大,耗費的存儲空間相對于其他幾種方法要高。合并操作不能撤銷。合并操作必須有一個合并限制比例,否則可能發生過度合并導致所有分類中心聚集,造成聚類失敗。HierarchicalClustering算法優缺點skearn提供的模塊cluster中可以調用:AgglomerativeClustering(n_clusters=2,affinity=“euclidean”,memory,connectivity,compute_full_tree,linkage,pooling_func)具體參數描述:n_clusters:一個整數,指定分類簇的數量,默認為2。affinity:一個字符串或者可調用對象,用于計算距離,默認歐氏距離“euclidean”。memory:用于緩存輸出的結果,默認為不緩存。connectivity:一個數組或者可調用對象或者None,用于指定連接矩陣。compute_full_tree:通常當訓練了n_clusters后,訓練過程就會停止,等于True時會繼續訓練從而生成一顆完整的樹。HierarchicalClustering使用方法(1)具體參數描述:linkage:一個字符串,用于指定鏈接算法,可選類型為{“ward”,“complete”,“average”,“single”}?!皊ingle”,單鏈接single-linkage,采用dmin?!癱omplete”,全鏈接complete-linkage,采用dmax?!癮verage”,均連接average-linkage,采用davg?!皐ard,Ward鏈接,為默認選擇方式。pooling_func:一個可調用對象,它的輸入是一組特征的值,輸出是一個數。該參數在sklearn0.20版本中棄用,將在0.22中刪除。HierarchicalClustering使用方法(2)BIRCH算法即平衡迭代削減聚類法,其核心是用一個聚類特征3元組表示一個簇的有關信息,從而使一簇點的表示可用對應的聚類特征,而不必用具體的一組點來表示。它通過構造滿足分支因子和簇直徑限制的聚類特征樹來求聚類。3元組包含:數據點個數,數據點特征之和,數據點特征的平方和分支因子:規定了樹的每個節點的樣本個數簇直徑:體現一類點的距離范圍BIRCH算法通過聚類特征可以方便地進行中心、半徑、直徑及類內、類間距離的運算。BIRCH算法中聚類特征樹的構建過程是動態的,可以隨時根據新的數據點對樹進行重構,適合大規模數據集。BIRCH算法BIRCH算法第一步是通過掃描數據,建立聚類特征樹。第二步是采用某個算法對聚類特征樹的葉節點進行聚類。BIRCH算法優缺點優點就是一次掃描就行進行比較好的聚類。缺點是要求是球形聚類,因為CF樹存儲的都是半徑類的數據,都是球形才適合。BIRCH算法描述聚類特征樹可以動態構造,不要求所有數據讀入內存,可逐個讀入。新的數據項總是插入到樹中與該數據距離最近的葉子中。如果插入后使得該葉子的直徑大于類直徑T,則把該葉子節點分裂。其它葉子結點也需要檢查是否超過分枝因子來判斷其分裂與否,直至該數據插入到葉子中,并且滿足不超過類直徑,而每個非葉子節點的子女個數不大于分枝因子。算法可通過改變類直徑修改特征樹大小,控制其占內存容量。BIRCH算法通過一次掃描就可以進行較好的聚類,因此該算法適于大數據集。I/O花費與數據量成線性關系。BIRCH算法只適用于數據的分布呈凸形及球形的情況,并且由于BIRCH算法需提供正確的聚類個數和簇直徑限制,對不可視的高維數據不可行。BIRCH算法的計算解析sklearn中的聚類算法包含在sklearn.cluster模塊中,BIRCH算法的具體描述為Birch(threshold=0.5,branching_factor=50,n_clusters=3,compute_labels=True,copy=True)參數說明如下:threshold:float,表示設定的半徑閾值,默認0.5。branching_factor:int,默認=50,每個節點最大特征樹子集群數。n_clusters:int,默認=3,最終聚類數目。compute_labels:bool,默認為True,是否為每個擬合計算標簽,一般默認。copy:bool,默認為True,是否復制給定數據。如果設置為False,則將覆蓋初始數據。BIRCH算法使用方法層次聚類的應用示例
構建容量為15000的瑞士卷(swissrolldataset)數據集,用離差平方和的層次聚類算法建模,可視化聚類結果并輸出算法運行時間,代碼如下:n_samples=15000noise=0.05X,_=make_swiss_roll(n_samples,noise)層次聚類的應用示例
減小瑞士卷的厚度X[:,1]*=.5print("Computeunstructuredhierarchicalclustering...")st=time.time()ward=AgglomerativeClustering(n_clusters=6,linkage='ward').fit(X)elapsed_time=time.time()-stlabel=ward.labels_#運行時間print("Elapsedtime:%.2fs"%elapsed_time)print("Numberofpoints:%i"%label.size)############################################################層次聚類的應用示例
#可視化結果fig=plt.figure()ax=p3.Axes3D(fig)ax.view_init(7,-80)forlinnp.unique(label):ax.scatter(X[label==l,0],X[label==l,1],X[label==l,2],color=plt.cm.jet(np.float(l)/np.max(label+1)),s=20,edgecolor='k')plt.title('Withoutconnectivityconstraints(time%.2fs)'%層次聚類的應用示例
效果圖輸出如圖:1.無監督學習2.聚類算法3.
K-Means聚類4.
層次聚類5.密度聚類算法密度聚類算法密度聚類的思想不同于K-Means,它是通過聚類的簇是否緊密相連來判斷樣本點是否屬于一個簇,代表性的算法就是DBSCAN,它基于一組鄰域參數來判斷某處樣本是否是緊密。DBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise,具有噪聲的基于密度的聚類方法)是一種很典型的密度聚類算法,和K-Means,BIRCH這些一般只適用于凸樣本集的聚類相比,DBSCAN還適用于非凸樣本集。密度聚類過程和原理(1)DBSCAN是一種基于密度的聚類算法,這類密度聚類算法一般假定類別可以通過樣本分布的緊密程度決定。同一類別的樣本,他們之間的緊密相連的,也就是說,在該類別任意樣本周圍不遠處一定有同類別的樣本存在。通過將緊密相連的樣本劃為一類,這樣就得到了一個聚類類別。通過將所有各組緊密相連的樣本劃為各個不同的類別,則我們就得到了最終的所有聚類類別結果。密度聚類過程和原理(2)DBSCAN是基于一組鄰域來描述樣本集的緊密程度的,參數(?,MinPts)用來描述鄰域的樣本分布緊密程度。其中,?描述了某一樣本的鄰域距離閾值,MinPts描述了某一樣本的距離為?的鄰域中樣本個數的閾值。DBSCAN算法的基本概念(1)DBSCAN算法的基本概念(2)DBSCAN算法將數據點分為三類:核心點:在半徑??內含有超過min_??????????????數目的點。邊界點:在半徑??內點的數量小于min_??????????????,但是落在核心點的鄰域內的點。噪音點:既不是核心點也不是邊界點的點。DBSCAN聚類算法應用特點和傳統的K-Means算法相比,DBSCAN最大的不同就是不需要輸入類別數K,當然它最大的優勢是可以發現任意形狀的聚類簇,而不是像K-Means,一般僅僅使用于凸的樣本集聚類。同時它在聚類的同時還可以找出異常點,這點和BIRCH算法類似。DBSCAN聚類算法優缺點
優點:可以解決數據分布特殊(非凸,互相包絡,長條形等)的情況。對于噪聲不敏感,速度較快,不需要指定簇的個數;可適用于較大的數據集。在鄰域參數給定的情況下結果是確定的,只要數據進入算法的順序不變,與初始值無關。缺點:如果樣本集的密度不均勻、聚類間距差相差很大時,聚類質量較差,這時用DBSCAN聚類一般不適合。如果樣本集較大時,聚類收斂時間較長,此時可以對搜索最近鄰時建立的KD樹或者球樹進行規模限制來改進。調參相對于傳統的K-Means之類的聚類算法稍復雜,主要需要對距離閾值?,鄰域樣本數閾值MinPts聯合調參,不同的參數組合對最后的聚類效果有較大影響。DBSCAN聚類算法使用方法
利用sklearn庫中的sklearn.cluster.DBSCAN方法,完整描述為:sklearn.cluster.DBSCAN(eps=0.5,min_samples=5,metric=’euclidean’,metric_params=None,algorithm=’auto’,leaf_size=30,p=None,n_jobs=None)注意:DBSCAN主要參數:eps:兩個樣本被看作鄰居節點的最大距離。min_samples:最小簇的樣本數。metric:距離計算方式,euclidean為歐氏距離計算。密度聚類應用示例
importwarningswarnings.filterwarnings('ignore')importnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlinefromsklearnimportdatasetsfromsklearn.clusterimportDBSCAN,KMeans密度聚類應用示例
#noise控制疊加的噪聲的大小X,y=datasets.make_circles(n_samples=1000,noise=0.1,factor=0.3)#centers=[[1.5,1.5]]坐標位置,在1.5,1.5生成X3,y3=datasets.make_blobs(n_samples=500,n_features=2,centers=[[1.5,1.5]],cluster_std=0.2)#將兩個數據級聯X=np.concatenate([X,X3])y=np.concatenate([y,y3+2])plt.scatter(X[:,0],X[:,1],c=y生成的數據如圖:密度聚類應用示例
密度聚類應用示例
kmeans#有缺陷kmeans=KMeans(3)kmeans.fit(X)y_=kmeans.predict(X)plt.scatter(X[:,0],X[:,1],c=y_)kmeans形成的聚類效果如圖10-13所示:可以看出,效果很不好。密度聚類應用示例
定義dbcandbscan=DBSCAN(eps=0.15,min_samples=5)dbscan.fit(X)#賦值y_=dbscan.fit_predict(X)y_=dbscan.labels_plt.scatter(X[:,0],X[:,1],c=y_)DBSCAN的形成的聚類效果如圖10-14所示:本章主要介紹了聚類算法的基本原理和常見聚類算法,包括Kmeans,層次聚類,密度聚類等,同時也介紹了不同算法在應用層面的差異性和優缺點,為后續算法的選型提供了比較好的理論參考??偨Y謝謝第十一章:降維與關聯規則學習目標通過本章的學習:掌握降維的基本思想掌握主成分分析(PCA)的步驟。掌握關聯規則算法的基本原理和挖掘過程。
1.降維技術2.
PCA降維技術的原理與實現3.LDA降維技術的原理與實現4.關聯規則挖掘算法的基本原理5.關聯規則挖掘應用算法降維技術背景(1)維數災難背景現實應用中屬性維度成千上萬,在高維度情況下會帶來很多麻煩,而且當維度大的時候,數據樣本一般分布的非常稀疏,這是所有學習算法要面對的問題,降維技術應運而生。數據降維降維是對事物的特征進行壓縮和篩選,該項任務相對比較抽象。如果沒有特定領域知識,無法預先決定采用哪些數據,比如在人臉識別任務中,如果直接使用圖像的原始像素信息,數據的維度會非常高,通常會利用降維技術對圖像進行處理,保留下最具有區分度的像素組合。降維技術背景(2)對數據降維還有如下原因:(1)使得數據集更易使用(2)降低算法的計算開銷(3)去除噪聲(4)使得結果容易理解降維技術-
主成分分析(1)主成分分析(PCA)
在PCA中,數據從原來的坐標系轉換到新的坐標系,由數據本身決定。轉換坐標系時,以方差最大的方向作為坐標軸方向,因為數據的最大方差給出了數據的最重要的信息。第一個新坐標軸選擇的是原始數據中方差最大的方法,第二個新坐標軸選擇的是與第一個新坐標軸正交且方差次大的方向。重復該過程,重復次數為原始數據的特征維數。大部分方差都包含在最前面的幾個新坐標軸中,因此,可以忽略余下的坐標軸,即對數據進行了降維處理。降維技術
-
線性判別式分析(2)線性判別式分析(LDA)
線性判別式分析是將高維的模式樣本投影到最佳判別矢量空間,以達到抽取分類信息和壓縮特征空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即模式在該空間中有最佳的可分離性,可以達到對數據進行的降維處理。降維方法總體理解(1)樣本數據集的理解將數據集考慮成矩陣,每行對應一個樣本,每列對應一個特征或者維度。在降維方法中,都是把數據集看作矩陣形式,數學上有非常多關于矩陣的處理技巧和定理,降維的方法證明均源于此。降維方法總體理解(2)機器學習領域中所謂的降維就是指采用某種映射方法,將原高維空間中的數據點映射到低維度的空間。降維的本質是學習一個映射函數f:x->y,其中x是原始數據點的表達,目前最多使用向量表達形式。y是數據點映射后的低維向量表達,通常y的維度小于x的維度(當然也可以提高維度)。映射函數f可能是顯式的或隱式的、線性的或非線性的。在很多算法中,降維算法成為了數據預處理的一部分。一些算法如果沒有降維預處理,就很難得到很好的效果。1.降維技術2.PCA降維技術的原理與實現3.LDA降維技術的原理與實現4.關聯規則挖掘算法的基本原理5.關聯規則挖掘應用算法PCA降維技術(1)PCA(PrincipalComponentAnalysis,主成分分析)在高維向量空間中,隨著維度的增加,數據呈現出越來越稀疏的分布特點,增加后續算法的復雜度,而很多時候雖然數據維度較高,但是很多維度之間存在相關性,他們表達的信息有重疊。PCA的思想是將n維特征映射到k維上(k<n),這k維是全新的正交特征。這k維特征稱為主成分,是重新構造出來的k維特征,而不是簡單地從n維特征中去除其余n-k維特征(這也是與特征選擇特征子集的方法的區別)。PCA降維技術(2)PCA的目的是在高維數據中找到最大方差的方向,接著映射它到比最初維數小或相等的新的子空間。PCA降維技術的原理(1)PCA應用本身是基于一定假設的:1.線性即特征的變換是線性變換,作用有限,目前也有非線性的特征變換kernelPCA。2.處理的數據分布式服從指數族概率密度函數,即能通過均值和協方差來表征數據的分布,因為只有在這個情況下信噪比和協方差矩陣才能表示噪聲和數據冗余。(好在實際應用中常見的數據是服從高斯分布或近似高斯分布)。PCA降維技術的原理(2)主成分分析(PCA)的基本原理
在一組多變量的數據中,很多變量常常是一起變動的。一個原因是很多變量是同一個驅動影響的的結果。在很多系統中,只有少數幾個這樣的驅動,但是多余的儀器使我們測量了很多的系統變量。當這種情況發生的時候,你需要處理的就是冗余的信息。而你可以通過用一個簡單的新變量代替這組變量來簡化此問題。PCA降維技術的原理(3)
第一主成分是數據空間的一個軸。當你把各觀察值投影到這個軸時,結果會形成一個新變量,這個變量的方差是所有可選的軸中最大的。第二主成分是空間的另一個軸,它垂直于第一個軸。投影數據到這個軸上將得到另一組變量,此變量的方差是所有可選的軸中最大的。PCA降維技術的原理(4)特征向量(eigenvector)是一個矩陣的滿足如下公式的非零向量:
特征向量和特征值只能由方陣得出,且并非所有方陣都有特征向量和特征值。如果一個矩陣有特征向量和特征值,那么它的每個維度都有一對特征向量和特征值。矩陣的主成分是其協方差矩陣的特征向量,按照對應的特征值大小排序。PCA降維技術的原理(5)
最大的特征值就是第一主成分,第二大的特征值就是第二主成分,以此類推。把數據映射到主成分上,第一主成分是最大特征值對應的特征向量,因此我們要建一個轉換矩陣,它的每一列都是主成分的特征向量。如果我們要把5維數據降成3維,那么我們就要用一個3維矩陣做轉換矩陣,用特征向量中的前三個主成分作為轉換矩陣。若把我們的2維數據映射成1維,那么我們就要用一個1維矩陣做轉換矩陣,用特征向量中的第一主成分作為轉換矩陣。最后,我們用數據矩陣右乘轉換矩陣。PCA算法流程輸入:n維特征的樣本數據集??輸出:降到p維后的樣本集??’對所有樣本構成的矩陣X進行去中心化;求出X的協方差矩陣C;利用特征值分解,求出協方差矩陣C的特征值及對應的特征向量;將特征向量按對應特征值大小從上到下按行排列成矩陣,根據實際業務場景,取前p列組成新的坐標矩陣W。令原始數據集與新坐標舉證W相乘,得到的新的數據集(矩陣)即為降到p維后的坐標。PCA優缺點優點:以方差衡量信息的無監督學習,不受樣本標簽限制。各主成分之間正交,可消除原始數據成分間的相互影響。計算方法簡單,主要運算是奇異值分解,易于在計算機上實現。可減少指標選擇的工作量。缺點:主成分解釋其含義往往具有一定的模糊性,不如原始樣本特征的解釋性強。方差小的非主成分也可能含有對樣本差異的重要信息,因降維丟棄可能對后續數據處理有影響。PCA降維的Python實現
#Python實現PCAimportnumpyasnpdefpca(X,k):#kisthecomponentsyouwant#每個特征的平均值n_samples,n_features=X.shapemean=np.array([np.mean(X[:,i])foriinrange(n_features)])#規范化norm_X=X-mean#散射矩陣scatter_matrix=np.dot(np.transpose(norm_X),norm_X)#計算特征向量和特征值eig_val,eig_vec=np.linalg.eig(scatter_matrix)eig_pairs=[(np.abs(eig_val[i]),eig_vec[:,i])foriinrange(n_features)]PCA降維的Python實現
#根據eig_val從最高到最低對eig_vec進行排序eig_pairs.sort(reverse=True)#選擇最上面的keig_vecfeature=np.array([ele[1]foreleineig_pairs[:k]])#獲取新數據data=np.dot(norm_X,np.transpose(feature))returndataX=np.array([[-1,1],[-2,-1],[-3,-2],[1,1],[2,1],[3,2]])print(pca(X,1))PCA算法使用方法(1)在sklearn庫中,可以使用sklearn.decomposition.PCA加載PCA進行降維。具體方法:PCA(n_components=None,copy=True,whiten=False,svd_solver=‘auto’)主要參數有:n_components:指定主成分的個數,即降維后數據的維度。copy:在運行算法時,是否將原始訓練數據復制一份。等于True表示在原始數據的副本上進行運算,原始訓練數據的值不會有任何改變;等于False在原始數據上進行降維計算,原始訓練數據的值會改。Whiten:白化,使得每個特征具有相同的方差。svd_solver:可選項為{‘auto’,‘full’,‘arpack’,‘randomized’},表示解析器計算SVD的策略。PCA算法使用方法(2)在sklearn庫中,可以使用sklearn.decomposition.PCA加載PCA進行降維。主要屬性:components_:降維后各主成分方向,并按照各主成分的方差值大小排序。explained_variance_:降維后各主成分的方差值,方差值越大,越主要。explained_variance_ratio_:降維后的各主成分的方差值占總方差值的比例,比例越大,則越主要。singular_values_:奇異值分解得到的前n_components個中最大的奇異值。1.降維技術2.PCA降維技術的原理與實現3.LDA降維技術的原理與實現4.關聯規則挖掘算法的基本原理5.關聯規則挖掘應用算法LDA介紹(1)
線性判別式分析(LinearDiscriminantAnalysis),簡稱為LDA。也稱為Fisher線性判別(FisherLinearDiscriminant,FLD),是模式識別的經典算法,在1996年由Belhumeur引入模式識別和人工智能領域。 LDA是一種監督學習的降維技術,將數據在低維度上進行投影,投影后希望每一種類別數據的投影點盡可能的接近,而不同類別的數據的類別中心之間的距離盡可能的大。LDA介紹(2)LDA(LinearDiscriminantAnalysis)線性判別式分析,也叫Fisher線性判別,是模式識別中的經典算法,它的數據集的每個樣本是有類別輸出的。思想:投影后類內距離最小,類間距離最大。線性判別:LDA的主要思想是將一個高維空間中的數據投影到一個較低維的空間中,且投影后要保證各個類別的類內方差小而類間均值差別大,這意味著同一類的高維數據投影到低維空間后相同類別的聚在一起,而不同類別之間相距較遠。判別問題與線性判別函數
1.方法分類:線性判別函數、支持向量機、fisher線性判別函數廣義線性判別函數、非線性判別函數、核學習機2.基本思想:步一:給定一個判別函數,且已知該函數的參數形式;步二:采用樣本來訓練判別函數的參數;判別問題與線性判別函數
步三:對于新樣本,采用判別函數對其進行決策,并按照一些準則來完成分類學習判別函數的基本技術路線;假定有n個d維空間中的樣本,每個樣本的類別標簽已知,且一共有c個不同的類別假定判別函數的形式已知,尋找一個判別函數對于給定的新樣本x,判定它屬于哪個類別LDA算法優缺點LDA算法既可以用來降維,也可以用來分類,主要用于降維,尤其在進行圖像識別相關的數據分析時,LDA是一個有力的工具。優點:在降維過程中可以使用類別的先驗經驗。LDA在樣本分類信息依賴均值而不是方差的時候,比PCA之類的算法較
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CHC 1-2020電熱保健功能桶(屋)
- T/CECS 10247-2022綠色建材評價剛性防水材料
- T/CECS 10117-2021濕氣固化型緩粘結預應力鋼絞線
- T/CECS 10095-2020戶式輻射系統用新風除濕機
- T/CCT 013-2023蘭炭生產業二氧化碳排放核算技術規范
- T/CCSAS 032-2023化學反應單元操作機械化、自動化設計方案指南
- T/CCMA 0149-2023旋挖鉆機用液壓缸技術要求
- T/CATCM 022-2023鹿茸片質量規范
- T/CASME 001-2017清潔產業集群構建指南
- 2024年度江蘇省二級建造師之二建礦業工程實務考試題庫
- 全國愛眼日科學用眼預防近視9
- 2025 年上海社區工作人員招聘考試模擬卷
- 2025年醫療器械全國總策劃代理協議書
- 《數據網組建與維護》課件-8.1任務1 WLAN基本配置
- 9.2 法律保障生活課件(共13張)-2024-2025學年統編版道德與法治七年級下冊
- 《裝備測試性工作要求GJB 2547B-2024》知識培訓
- 形勢與政策(2025春)超星爾雅學習通答案滿分章節測試
- 外科學-上肢骨、關節損傷
- 單片機原理及應用知到智慧樹章節測試課后答案2024年秋溫州醫科大學
- 《寧靜住宅評價標準》
- 2025新人教版七年級下冊英語Unit7知識點梳理及語法講義(教師版)
評論
0/150
提交評論