Python數據分析與挖掘實戰(第2版)(微課版)課件 翟世臣 第5-10章 數據挖掘算法基礎-基于TipDM大數據挖掘建模平臺實現金融服務機構資金流量預測_第1頁
Python數據分析與挖掘實戰(第2版)(微課版)課件 翟世臣 第5-10章 數據挖掘算法基礎-基于TipDM大數據挖掘建模平臺實現金融服務機構資金流量預測_第2頁
Python數據分析與挖掘實戰(第2版)(微課版)課件 翟世臣 第5-10章 數據挖掘算法基礎-基于TipDM大數據挖掘建模平臺實現金融服務機構資金流量預測_第3頁
Python數據分析與挖掘實戰(第2版)(微課版)課件 翟世臣 第5-10章 數據挖掘算法基礎-基于TipDM大數據挖掘建模平臺實現金融服務機構資金流量預測_第4頁
Python數據分析與挖掘實戰(第2版)(微課版)課件 翟世臣 第5-10章 數據挖掘算法基礎-基于TipDM大數據挖掘建模平臺實現金融服務機構資金流量預測_第5頁
已閱讀5頁,還剩296頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

數據挖掘算法基礎分類與回歸聚類關聯規則時間序列智能推薦深度學習分類與回歸分類與回歸是預測問題的兩種主要類型。分類主要預測分類類別回歸主要建立連續值函數模型常用的分類與回歸算法分類算法是先構造一個分類模型,模型的輸入為樣本的屬性值,輸出為對應的類別,然后將每個樣本映射到預先定義好的類別。回歸算法則是先建立兩種或兩種以上變量間相互依賴的函數模型,然后使用函數模型預測目標的值。常用的分類與回歸算法分類模型的具體實現步驟分為兩步(如右圖)第一步是訓練,通過歸納分析訓練樣本集來建立分類模型得到分類規則。第二步是預測,先用已知的測試樣本集評估分類模型的準確率,如果準確率是可以接受的,則使用該模型對待測樣本集進行預測。回歸模型的實現步驟分為兩步第一步是通過訓練集建立數值型的預測屬性的函數模型。第二步是在模型通過檢驗后進行預測或控制。常用的分類與回歸算法常用的分類與回歸算法。算法名稱算法描述回歸分析回歸分析是在確定預測屬性(數值型)與其他變量間相互依賴的定量關系時常用的統計學方法,包括線性回歸、非線性回歸、Logistic回歸、嶺回歸、主成分回歸、偏最小二乘回歸等模型決策樹決策樹采用自頂向下的遞歸方式,在內部節點進行屬性值的比較,并根據不同的屬性值從該節點向下分支,最終得到的葉節點是學習劃分的類最近鄰分類最近鄰分類是一種典型的“懶惰學習”算法,基于指定的距離度量,找出測試樣本的最近鄰,并基于投票法對測試樣本進行分類支持向量機支持向量機的基本思想是在樣本空間或特征中,構造出最優超平面,使得超平面與不同類樣本集之間的距離最大,從而達到最大化泛化能力的目的人工神經網絡人工神經網絡是一種模仿大腦神經網絡結構和功能而建立的信息處理系統,是表示神經網絡的輸入與輸出變量之間關系的模型集成學習集成算法使用多種算法的組合進行預測,比單一分類器具有更高的準確率和更好的魯棒性,通常分為Bagging(聚合)、Boosting(提升)和Stacking(堆疊)3種模式分類與回歸模型評價1.分類模型評價指標準確率準確率(Accuracy)可計算出預測正確的結果占總樣本的百分比。

TP(TruePositives):正確地將正樣本預測為正樣本的分類數。

TN(TrueNegatives):正確地將負樣本預測為負樣本的分類數。

FP(FalsePositives):錯誤地將負樣本預測為正樣本的分類數。

FN(FalseNegatives):錯誤地將正樣本預測為負樣本的分類數。分類模型評價指標精確率精確率(Precision)可計算出所有被預測為正的樣本中實際為正樣本的概率。反饋率反饋率(Recall)可計算出正確預測為正的樣本占實際正樣本的百分比。分類模型評價指標混淆矩陣混淆矩陣(ConfusionMatrix)是模式識別領域中一種常用的表達形式。它用于描繪樣本數據的真實屬性與識別結果類型之間的關系。以一個二分類任務為例,可將樣本根據真實類別與預測的分類結果的組合劃分為TP、FP、FN、TN共4種情形,對應其樣本數,則有總樣本數=TP+FP+FN+TN。真實結果預測結果正類反類正類TPFN反類FPTN分類模型評價指標混淆矩陣以90個樣本數據為例,將其分成3類,每類含有30個樣本數據,對應混淆矩陣中應用于實際數據得到的分類情況如下。真實結果預測結果類1類2類3類12631類21272類31029ROC曲線分類模型評價指標接收者操作特征曲線(ROC曲線)是一種非常有效的模型評價方法,可為選定臨界值給出定量提示。真正率(縱坐標),即正確地將正樣本預測為正樣本的概率假正率(橫坐標),即錯誤地將負樣本預測為正樣本的概率。曲線下的面積(area)的值越接近1說明該算法的效果越好。分類與回歸模型評價2.回歸模型評價指標絕對誤差與相對誤差設Y為實際值,為預測值,則E為絕對誤差(AbsoluteError)。e為相對誤差(RelativeError)。相對誤差也可用百分數表示。回歸模型評價指標平均絕對誤差平均絕對誤差(MeanAbsoluteError,MAE)的計算公式如下。

表示第i個實際值與預測值的誤差,表示第i個實際值,表示第i個預測值。由于預測誤差有正有負,為了避免正負相抵消,故取誤差的絕對值進行綜合并取平均值。回歸模型評價指標均方誤差均方誤差(MeanSquaredError,MSE)是預測誤差平方之和的平均值,它避免了正負誤差不能相加的問題,且可用于還原平方失真程度。由于對誤差進行了平方,所以加強了數值大的誤差在指標中的作用,從而提高了這個指標的靈敏性。回歸模型評價指標均方根誤差均方根誤差(RootMeanSquaredError,RMSE)是均方誤差的平方根,代表了預測值的離散程度,也叫標準誤差,最佳擬合情況為RMSE=0。回歸模型評價指標平均絕對百分誤差平均絕對百分誤差(MeanAbsolutePercentageError,MAPE)的計算公式如下。一般認為,小于10時預測精度較高。回歸模型評價指標Kappa統計量Kappa統計是比較兩個或多個觀測者對同一事物,或觀測者對同一事物的兩次或多次觀測結果是否一致,將由隨機造成的一致性與實際觀測的一致性之間的差別大小作為評價基礎的統計指標。Kappa統計量和加權Kappa統計量不僅可以用于無序和有序分類變量資料的一致性、重現性檢驗,而且能給出一個反映一致性大小的“量”值。回歸模型評價指標

Kappa的取值在區間內,其值的大小均有不同的意義,具體如下。當Kappa=1時,說明兩次或多次判斷的結果完全一致。當Kappa=-1時,說明兩次或多次判斷的結果完全不一致。當Kappa=0時,說明兩次或多次判斷的結果是隨機造成的。當-1<Kappa<0時,說明一致性比隨機造成的還差,兩次的檢查結果很不一致,在實際應用中無意義。當0<Kappa<1時,說明有意義,Kappa的值越大,說明一致性越好。當0.75≤Kappa<1時,說明已經取得相當滿意的一致性。當0<Kappa<0.4時,說明一致性不夠好。線性模型1.線性回歸模型如果回歸模型中只包括一個自變量和一個因變量,且二者的關系可用一條直線近似地表示,則其稱為一元線性回歸模型。如果回歸模型中包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關系,則其稱為多元線性回歸模型。線性回歸模型對于由d個屬性組成的樣本集 ,其中是x在第i個屬性上的取值,線性模型即通過學習得到一個屬性的線性組合來預測樣本標簽的函數。一般表示為,其中表示回歸系數的集合,其中回歸系數表示屬性在預測目標變量時的重要性,b為常數。線性回歸模型使用scikit-learn庫中linear_model模塊的LinearRegression類可以建立線性回歸模。classsklearn.linear_model.LinearRegression(*,fit_intercept=True,copy_X=True,n_jobs=None,positive=False)參數名稱說明fit_intercept接收bool類型的值。表示是否有截距,若沒有則直線過原點。默認值為Truecopy_X接收bool類型的值。表示是否復制數據表進行運算。默認值為Truen_jobs接收int類型的值。表示計算時使用的核數。默認值為Nonepositive接收bool類型的值。當設置為True時,強制系數為正數。此選項僅支持稠密數組。默認值為False線性回歸模型使用LinearRegression類對某市財政收入數據集構建線性回歸模型。平均絕對誤差、均方誤差和中值絕對誤差越接近0,則模型的預測效果越好;而可解釋方差值、R平方值越接近1,則模型的預測效果越好。從結果來看,建立的線性回歸模型的R平方值約為0.99,說明預測效果較好。線性模型2.邏輯回歸模型現實場景中更多的情況是x不與y成線性關系,而與y的某個函數成線性關系,此時需要引入邏輯回歸模型。邏輯回歸雖然稱作“回歸”,但實際上是一種分類算法。分類方法:設定一個分類閾值,將預測結果y大于分類閾值的樣本歸為正類,反之歸為反類。邏輯回歸模型邏輯回歸模型的表示邏輯回歸模型如下。其中,的取值范圍是,的含義與線性回歸模型中的一致。邏輯回歸模型解釋經過變形,轉換為標準邏輯回歸形式如下。邏輯回歸模型具體的步驟如下。根據分析目的設置因變量和自變量,然后收集數據,根據收集到的數據進行屬性篩選。y取1的概率是,取0的概率是。根據自變量列出線性回歸方程,估計出模型中的回歸系數。模型檢驗。模型有效性的檢驗指標有很多,最基本的有準確率,其次有混淆矩陣、ROC曲線、KS值等。模型預測。輸入自變量的取值,就可以得到預測變量的值。邏輯回歸模型的建模步驟邏輯回歸模型使用scikit-learn庫中linear_model模塊的LogisticRegression類可以建立邏輯回歸模。classsklearn.linear_model.LogisticRegression(penalty='l2',*,dual=False,tol=0.0001,C=1.0,fit_intercept=True,intercept_scaling=1,class_weight=None,random_state=None,solver='lbfgs',max_iter=100,multi_class='deprecated',verbose=0,warm_start=False,n_jobs=None,n_jobs=1)參數名稱說明penalty接收字符串。表示正則化選擇參數,可選l1或l2。默認值為l2solver接收字符串。表示優化算法選擇參數,可選參數有lbfgs、liblinear、newton-cg、newton-cholesky、sag、saga。默認值為lbfgsmulti_class接收字符串。表示分類方式選擇參數,如果選擇的選項是ovr,那么每個標簽適合一個二值問題。對于“多項”,損失最小化是跨整個概率分布的多項損失擬合,即使數據是二進制的。當solver=liblinear時,multinomia不可用。如果數據是二進制,或者solver=liblinear,auto將選ovr,否則選擇multinomial。默認值為autoclass_weight接收balanced及字典,表示類的權重,形式為{class_label:weight}。如果沒有給出,那么所有類別的權重都應該是1。默認值為Nonen_jobs接收int類型的值。當求解器設置為liblinear時,無論是否指定multi_class,此參數都會被忽略。沒有代表1,除非在工作中。parallel_backend上下文。-1表示使用所有處理器。默認值為None邏輯回歸模型基于scikit-learn庫中自帶的鳶尾花數據集(iris),使用LogisticRegression類構建邏輯回歸模型。結果如下。

預測正確數:30

預測錯誤數:0

準確率:1.0結果顯示邏輯回歸模型預測結果的準確率約為100%,說明模型分類效果比較理想,但是有過擬合的風險。決策樹在20世紀70年代后期和20世紀80年代初期,研究者羅斯昆(J.RossQuinlan)提出了ID3算法以后,決策樹在機器學習、數據挖掘領域得到了極大的發展。羅斯昆后來又提出了C4.5算法,該算法成為新的決策樹分類算法。1984年,幾位統計學家提出了CART算法。ID3和CART算法采用類似的方法從訓練樣本中學習決策樹。決策樹是樹狀結構,它的每一個葉節點對應著一個分類,非葉節點對應著在某個屬性上的劃分,根據樣本在該屬性上的不同取值將其劃分成若干個子集。對于非純的葉節點,多數類的標記會給出到達這個節點的樣本所屬的類。構造決策樹的核心問題是如何在每一步選擇恰當的屬性來拆分樣本。決策樹常用的決策樹算法。決策樹算法算法描述ID3算法ID3算法的核心是在決策樹的各級節點上,使用信息增益方法作為屬性的選擇標準,以幫助確定生成每個節點時應采用的合適屬性C4.5算法C4.5算法相對于ID3算法的重要改進是使用信息增益率來選擇節點屬性。C4.5算法可以克服ID3算法存在的不足:ID3算法只適用于離散的描述屬性;而C4.5算法既能夠處理離散的描述屬性,也可以處理連續的描述屬性CART算法CART算法是一種十分有效的非參數分類和回歸方法,通過構建樹、修剪樹、評估樹來構建一個二叉樹。當終節點是連續變量時,該樹為回歸樹;當終節點是分類變量時,該樹為分類樹SLIQ算法SLIQ算法對C4.5算法的實現方法進行了改進,能處理比C4.5算法大得多的訓練集,在一定范圍內具有良好的可伸縮性決策樹1.ID3算法簡介及基本原理ID3算法采用信息增益值作為決策的標準,而信息熵用于評估樣本集的純度。如果樣本集中的樣本都屬于一個類別,則這個樣本集為純,否則為不純。ID3算法選擇當前樣本集中具有最大信息增益值的屬性作為測試屬性,信息增益值表示某個屬性的信息熵與其他屬性的信息熵之和的差值。樣本集的劃分則依據測試屬性的取值進行,測試屬性有多少不同的取值就將樣本集劃分為多少個子樣本集,同時決策樹上相對應樣本集的節點長出新的葉節點。用信息增益值度量不確定性:信息增益值越大,不確定性越小。ID3算法簡介及基本原理ID3算法核心是在決策樹的各級節點上都使用信息增益值作為判斷標準來進行屬性的選擇,使得在每個非葉節點上進行劃分時,都能獲得最大的類別分類增益,使分類后的數據集的熵最小。ID3算法只能處理離散型屬性,對于連續型屬性,在分類前需要對其進行離散化。由于ID3算法采用了信息增益值作為選擇測試屬性的標準,因此會偏向于選擇取值較多的屬性,即高度分支屬性,而這類屬性并不一定是最優的屬性。解決ID3算法傾向于選擇高度分支屬性的問題,可以采用信息增益率作為選擇測試屬性的標準,信息增益率為節點的信息增益值與節點分裂信息度量的比值,這樣便得到了C4.5算法。決策樹2.ID3算法具體流程ID3算法的具體實現步驟如下。計算當前樣本集的所有屬性的信息增益值。選擇信息增益值最大的屬性作為測試屬性,將測試屬性中值相同的樣本劃為同一個子樣本集。若子樣本集的類別屬性只含有單個類別,則分支為葉節點,判斷其屬性值并標上相應的符號,然后返回調用處;否則對子樣本集遞歸調用本算法。ID3算法具體流程使用scikit-learn庫中tree模塊的DecisionTreeClassifier類可以建立決策樹模型。classsklearn.tree.DecisionTreeClassifier(*,criterion='gini',splitter='best',max_depth=None,min_samples_split=2,min_samples_leaf=1,min_weight_fraction_leaf=0.0,max_features=None,random_state=None,max_leaf_nodes=None,min_impurity_decrease=0.0,class_weight=None,ccp_alpha=0.0,monotonic_cst=None)參數名稱參數說明criterion接收gini、entropy或log_loss。表示用于衡量拆分質量的函數。默認值為ginisplitter接收best或random。表示該策略用于在每個節點選擇分割。支持的策略有選擇最佳分割的“best”策略和選擇最佳隨機分割的“random”策略。默認值為bestmax_depth接收int類型的值。表示樹的最大深度,如果沒有,則擴展節點,直到所有葉子節點都是純的,或者直到所有葉子節點包含的樣本數量小于min_samples_split。默認值為Nonemin_samples_split接收int或float類型的值。表示分裂一個內部節點所需的最小樣本數:如果是int,則考慮將min_samples_split作為最小值。如果是浮點數,則min_samples_split是一個分數,ceil(min_samples_split*n_samples)是每次劃分的最小樣本數。默認值為2ID3算法具體流程某超市為了了解周末和非周末、天氣、促銷活動等因素是否對當天銷售數量具有較大的影響,需要構建模型來分析。以超市的銷售情況數據為基礎,使用ID3算法構建決策樹模型。將數據中屬性值相近的值進行類別整合,經過處理后的部分數據如下。序號天氣是否周末是否有促銷銷售數量序號天氣是否周末是否有促銷銷售數量1壞是是高6壞否是高2壞是是高7壞是否高3壞是是高8好是是高4壞否是高9好是否高5壞是是高10好是是高ID3算法具體流程使用scikit-learn庫建立基于ID3算法的決策樹模型以預測銷售數量的高低,可視化結果如下。最近鄰分類K最近鄰(K-NearestNeighbor,KNN)分類算法是一種常用的監督學習方法,是最近鄰分類算法中的一種。原理:對于給定測試樣本,基于指定的距離度量找出訓練集中與其最近的k個樣本,然后基于這k個“鄰居”的信息來進行預測。預測結果在分類任務中用的是“投票法”,即選擇k個“鄰居”中出現最多的類別標記作為預測結果。在回歸任務中使用的是“平均法”,即取k個“鄰居”的實際值,輸出標記的平均值作為預測結果。可根據距離遠近進行加權投票或加權平均,距離越近的樣本權重越大。最近鄰分類距離度量一般采用歐氏距離,對于n維歐氏空間中的兩點、,兩點間的歐氏距離計算公式如下。在式中,為點與點之間的歐氏距離,其中,從1取到,表示第個坐標的點。最近鄰分類K最近鄰分類器的示意圖,其中虛線表示等距線,“+”“-”表示樣本的類別為正或負。當k=1時,根據最近鄰分類算法中的“投票法”規則,在指定的k所代表的等距線的范圍中,“+”樣本的個數為1,“-”樣本的個數為0。“+”樣本在范圍內的樣本中占比高于“-”樣本,因此會將測試樣本判給占比更高的“+”類別。當k=3時,在對應的等距線的范圍中,“+”樣本在范圍內的樣本中所占的比例為1/3,“-”樣本所占的比例為2/3。此時,“-”樣本的占比高于“+”樣本,因此會將測試樣本判給占比更高的“-”類別。當k=5時,在對應的等距線的范圍中,“+”樣本在范圍內的樣本中所占的比例為3/5,“-”樣本所占的比例為2/5。此時,“+”樣本的占比高于“-”樣本,因此會將測試樣本判給占比更高的“+”類別。最近鄰分類使用scikit-learn庫中neighbors模塊的KNeighborsClassifier類可以實現K最近鄰分類算法對數據進行分類。classsklearn.neighbors.KNeighborsClassifier(n_neighbors=5,*,weights='uniform',algorithm='auto',leaf_size=30,p=2,metric='minkowski',metric_params=None,n_jobs=None)參數名稱說明n_neighbors接收int類型的值。表示“鄰居”數。默認值為5weights接收字符串。表示分類判斷時最近鄰的權重,可選參數有uniform和distance,uniform表示權重相等,distance表示按距離的倒數賦予權重。默認值為uniformalgorithm接收字符串。表示用于計算最近鄰的算法,可選參數有auto、ball_tree、kd_tree和brute。默認值為autop接收float類型的值。表示Minkowski度量的功率參數。當p=1時,這相當于在p=2時使用manhattan距離(l1)和euclidean_distance(l2)。對于任意的p,使用minkowski_distance(l_p)。該參數預計為正。默認值為2。metric接收字符串。表示距離度量。默認值為minkowskin_jobs接收int類型的值。表示鄰居搜索需要并行執行的作業數。默認值為None最近鄰分類使用K最近鄰分類算法構建分類模型。對于scikit-learn庫中自帶的手寫數字數據集(digits),使用KNeighborsClassifier類構建K最近鄰分類模型,得到的預測結果的準確率為98.1%,說明模型效果較好。1.支持向量機簡介支持向量機對于給定數據集,,支持向量機的思想是在樣本空間中找到一個劃分超平面,將不同類別的樣本分開。支持向量機的目的就是找到這個最優的劃分超平面。支持向量機簡介在樣本空間中,劃分超平面可通過線性方程來描述。為法向量,決定了超平面的方向。

b為位移項,決定了超平面與原點之間的距離。支持向量機2.線性支持向量機如果存在一個超平面將兩類樣本完全分開,則稱為數據線性可分。在數據線性可分的情況下,對應的線性支持向量機的基本步驟如下。將原問題轉化為凸優化問題通過構建拉格朗日函數,將原問題對偶化利用SMO算法對對偶化后的問題進行求解支持向量機3.非線性支持向量機問題:在現實場景應用中,樣本空間中很可能并不存在一個能正確劃分樣本的劃分超平面。解決方法:將樣本從原始空間映射到一個更高維的特征空間,使得樣本在這個特征空間內線性可分。數學定理:如果原始空間是有限維的,那么一定存在一個高維空間能使樣本線性可分。非線性支持向量機由于映射后的特征空間維數可能很高,直接計算通常是很困難的,可利用已知的核函數映射后再進行計算。核函數名稱表達式說明線性核為核函數,和為樣本多項式核d為多項式次數,d≥1高斯核為高斯核的帶寬(Width),拉普拉斯核Sigmoid核tanh為雙曲正切函數,

非線性支持向量機使用scikit-learn庫中svm模塊的SVC類可以實現支持向量機算法對數據進行分類。classsklearn.svm.SVC(*,C=1.0,kernel='rbf',degree=3,gamma='scale',coef0=0.0,shrinking=True,probability=False,tol=0.001,cache_size=200,class_weight=None,verbose=False,max_iter=-1,decision_function_shape='ovr',break_ties=False,random_state=None)參數名稱說明C接收float類型的值。表示正則化參數。正則化的強度與C成反比,必須嚴格為正。懲罰是l2懲罰的平方。縮放正則化參數C的效果的直觀可視化,請參見縮放SVCs的正則化參數。默認值為1.0kernel接收字符串。表示指定算法中使用的內核類型,可選參數有linear、poly、rbf、sigmoid、precomputed。默認值為rbfdegree接收int類型的值。表示多項式核函數poly的維度。默認值為3gamma接收字符串。表示rbf、poly、sigmoid核函數的參數,若是auto,則自動設置參數。默認值為scalecoef0接收float類型的值。表示核函數中的獨立項,對poly和sigmoid有效,默認值為0.0tol接收float類型的值。表示公差停止標準。默認值為0.001max_iter接收int類型的值。表示最大迭代次數,-1表示無限制。默認值為-1非線性支持向量機使用非線性支持向量機構建模型。對scikit-learn庫中自帶的手寫數字數據集(digits),使用SVC類構建支持向量機模型,得到的預測結果的準確率為99.2%,說明預測效果很好,但是存在過擬合的風險,因此需要在更多的樣本上進行測試。神經網絡1.神經網絡介紹神經網絡是由具有適應性的簡單單元組成的廣泛并行互聯網絡,它的組織能夠模擬生物神經系統對真實世界物體所作出的交互反應。將多個神經元按一定的層次結構連接起來,就得到神經網絡。使用神經網絡模型需要確定網絡連接的拓撲結構、神經元的特征和學習規則等,常見的神經網絡的層級結構(右圖)。神經網絡介紹常用于實現分類與回歸的神經網絡算法。算法名稱算法描述BP神經網絡BP神經網絡是一種按誤差逆傳播算法訓練的多層前饋神經網絡,學習算法是δ學習規則,是目前應用最廣泛的神經網絡模型之一LM神經網絡LM神經網絡是基于梯度下降法和牛頓法的多層前饋神經網絡,特點為迭代次數少、收斂速度快、精確度高RBF(徑向基)神經網絡RBF神經網絡能夠以任意精度逼近任意連續函數,從輸入層到隱層的變換是非線性的,而從隱層到輸出層的變換是線性的,特別適合于解決分類問題FNN(模糊神經網絡)FNN是具有模糊權系數或者輸入信號是模糊量的神經網絡,它是模糊系統與神經網絡相結合的產物,具有神經網絡與模糊系統的優點,集聯想、識別、自適應及模糊信息處理于一體GMDH神經網絡GMDH神經網絡也稱多項式網絡,它是前饋神經網絡中常用的一種用于預測的神經網絡。它的特點是網絡結構不固定,以及在訓練過程中會不斷改變ANFIS神經網絡ANFIS神經網絡鑲嵌在一個全部模糊的結構之中,在不知不覺中向訓練數據學習,自動產生、修正并高度概括出最佳的輸入與輸出變量的隸屬函數及模糊規則;另外神經網絡的各層結構和參數也都具有明確的、易于理解的物理意義神經網絡1.

BP神經網絡BP神經網絡,是指采用誤差逆傳播(BackPropagation,BP)算法訓練的多層前饋神經網絡。BP神經網絡算法的流程如下。(1)在(0,1)范圍內隨機初始化網絡中所有權值和閾值。(2)將訓練樣本提供給輸入層神經元,然后將信號逐層往前傳,直到產生輸出層的結果,這一步一般稱為信號向前傳播。(3)計算輸出層誤差,將誤差逆向傳播至隱層神經元,再根據隱層神經元誤差來對權值和閾值進行更新,這一步一般稱為誤差向后傳播。(4)循環執行步驟(2)和步驟(3),直到滿足某個停止條件(一般為訓練誤差小于設定的閾值或迭代次數大于設定的閾值)。BP神經網絡如下為一個有3個輸入節點、4個隱層節點、1個輸出節點的三層BP神經網絡。BP神經網絡BP算法的學習過程由信號的正向傳播與誤差的逆向傳播兩個過程組成。正向傳播時,輸入信號經過隱層的處理后傳向輸出層。若輸出層節點未能得到期望的輸出,則轉入誤差的逆向傳播階段。一直進行到網絡輸出的誤差減少到可接受的程度或達到設定的學習次數為止。BP神經網絡使用scikit-learn庫中neural_network模塊的MLPClassifier類可以建立多層感知器分類模型。classsklearn.neural_network.MLPClassifier(hidden_layer_sizes=(100,),activation='relu',*,solver='adam',alpha=0.0001,batch_size='auto',learning_rate='constant',learning_rate_init=0.001,power_t=0.5,max_iter=200,shuffle=True,random_state=None,tol=0.0001,verbose=False,warm_start=False,momentum=0.9,nesterovs_momentum=True,early_stopping=False,validation_fraction=0.1,beta_1=0.9,beta_2=0.999,epsilon=1e-08,n_iter_no_change=10,max_fun=15000)BP神經網絡MLPClassifier類常用的部分參數及其說明。參數名稱說明hidden_layer_sizes接收元組。表示隱層結構,其長度表示隱層層數,元素表示每一個隱層的神經元個數。如(80,90)表示包含兩個隱層,第一個隱層有80個神經元,第二個隱層有90個神經元。默認值為100activation接收字符串。表示激活函數,可選參數有以下4個。(1)identity:恒等函數,

。(2)logistics:sigmoid函數,f(x)=1/(1+exp(-x))。(3)tanh:tanh函數,f(x)=tanh(x)。(4)relu:relu函數,

。默認值為relusolver接收字符串。表示優化算法的類型,可選參數有以下3個。(1)lbfgs:一種擬牛頓法。(2)sgd:隨機梯度下降法。(3)adam:基于隨機梯度的優化器,在大規模數據集上的效果較好。默認值為adamalpha接收float類型的值。表示L2正則項的強度。默認值為0.0001max_iter接收int類型的值。表示最大迭代次數。默認值為200tol接收float類型的值。表示優化的容忍度。默認值為0.0001BP神經網絡繪制的ROC曲線如圖。使用泰坦尼克號幸存人員數據,調用scikit-learn庫中的MLPClassifier類構建神經網絡模型。所得的各模型評價指標如表。模型評價指標指標數值準確率86.03%精確率90.00%召回率69.23%F1值0.783混淆矩陣[[1095][2045]]AUC值0.824集成算法集成算法通過組合多種學習算法來獲得比單獨使用某種學習算法更好的預測性能。近年來,隨著計算機的計算能力不斷提高,集成分類器的應用領域也越來越廣泛,包括遙感、計算機安全、人臉識別、情感識別、欺詐檢測、金融決策和醫學等多個領域。集成算法1.Bagging假設有個病人去醫院看病,希望根據醫生做出的診斷進行相應的治療,他選擇多位醫生進行診斷;如果某種診斷結果比其他診斷結果出現的次數多,則將它作為最終的診斷結果。即最終的診斷結果是根據多數表決做出的,每位醫生都具有相同的權重。將醫生換成分類器,就得到Bagging(Bootstrapaggregating,引導聚集)算法的思想,單個分類器稱為基分類器。根據經驗可以直觀地認為多數分類器的結果比少數分類器的結果更可靠。Bagging對于包含n個訓練樣本的數據集D,組成的分類器有k個,Bagging算法的具體實現過程如下。利用自助法生成k個訓練集,即每個都是從原數據集中有放回地抽取個樣本得到的。在每個訓練集上學習一個分類器。最終的分類結果由所有分類器投票決定,即取分類結果數最多的類別作為最終的分類結果。Bagging隨機森林(RandomForest,RF)是Bagging算法的一個拓展,它在以決策樹為基分類器構建Bagging學習器的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。隨機森林對決策樹的改進有以下兩方面。每個基分類器都是一棵決策樹,通常為CART。每個訓練集除了用自助法抽樣之外,還進行了隨機屬性選擇。由于隨機森林在每次劃分時只考慮很少的屬性,所以用它處理大型數據集時的效率很高。Bagging使用scikit-learn庫中ensemble模塊的RandomForestClassifier類可以建立隨機森林模型。classsklearn.ensemble.RandomForestClassifier(n_estimators=100,*,criterion='gini',max_depth=None,min_samples_split=2,min_samples_leaf=1,min_weight_fraction_leaf=0.0,max_features='sqrt',max_leaf_nodes=None,min_impurity_decrease=0.0,bootstrap=True,oob_score=False,n_jobs=None,random_state=None,verbose=0,warm_start=False,class_weight=None,ccp_alpha=0.0,max_samples=None,monotonic_cst=None)BaggingRandomForestClassifier類常用的部分參數及其說明。參數名稱參數說明n_estimators接收int類型的值。表示森林中樹木的數量。默認值為100criterion接收字符串。表示用于衡量拆分質量的函數,可選參數有gini、entropy、log_loss。默認值為ginimax_depth接收int類型的值。表示樹的最大深度。默認值為Nonemin_samples_split接收int或float類型的值。表示分裂一個內部節點所需的最小樣本數,如果是int,則考慮將min_samples_split作為最小值。如果是浮點數,則min_samples_split是一個分數,ceil(min_samples_split*n_samples)是每次劃分的最小樣本數。默認值為2min_samples_leaf接收int或float類型的值。表示葉節點最小的樣本數,如果是int,則認為min_samples_leaf是最小值。如果是浮點數,則min_samples_leaf是一個分數,而ceil(min_samples_leaf*n_samples)是每個節點的最小樣本數。默認值為1max_leaf_nodes接收int類型的值。表示以最佳優先的方式使用max_leaf_nodes生成樹。默認值為Noneclass_weight接收字典、列表。以{class_label:weight}的形式表示類的權重。默認值為None集成算法2.BoostingBoosting(提升)算法是一個可將弱學習器提升為強學習器的算法。工作機制給每一個訓練樣本賦予一個相等的初始權重。迭代地學習k個分類器,學習得到分類器之后更新權重,使得后面的分類器更關注誤分類的訓練樣本。最后的分類器組合每個分類器的表決結果,其中每個分類器投票的權重是該分類器準確率對應的函數取值。BoostingAdaboost算法Adaboost算法是一種迭代算法,是對Boosting算法進行改進得到的。Adaboost算法的主要思想是將一系列弱分類器級聯組合成一個強分類器。具體步驟如下。(1)對于給定數據集,其中是元組的類標號,對每個訓練樣本賦予相同的權重。(2)在訓練的第i輪過程中,從D中有放回地抽取n個樣本,每個樣本被選擇的概率由權重決定,產生對應的子訓練集稱為。(3)在子訓練集上訓練分類器,計算分類器的錯誤率。(4)根據的分類結果調整權重。(5)判斷分類器數目是否達到k個。若達到,則算法結束,可得到最終分類器,由各個基分類器加權求和得到;若未達到,則返回步驟(2)重新迭代。Boosting梯度提升機(GBM)梯度提升機(GradientBoostingMachine,GBM)是一種Boosting算法,其提高模型精度的方法與傳統Boosting算法對正確、錯誤樣本進行加權不同。該算法通過在殘差(Residual)減小的梯度(Gradient)方向上建立一個新的模型,從而減小新模型的殘差,即每個新模型的建立是為了使之前模型的殘差在梯度方向上減小。GBM模型可以靈活地處理各種類型的數據,包括連續型數據和離散型數據。GBM使用了一些健壯的損失函數,使得它對異常值的魯棒性非常強。Boosting使用scikit-learn庫中ensemble模塊的GradientBoostingClassifier類可以建立梯度提升決策樹模型。classsklearn.ensemble.GradientBoostingClassifier(*,loss='log_loss',learning_rate=0.1,n_estimators=100,subsample=1.0,criterion='friedman_mse',min_samples_split=2,min_samples_leaf=1,min_weight_fraction_leaf=0.0,max_depth=3,min_impurity_decrease=0.0,init=None,random_state=None,max_features=None,verbose=0,max_leaf_nodes=None,warm_start=False,validation_fraction=0.1,n_iter_no_change=None,tol=0.0001,ccp_alpha=0.0)BoostingGradientBoostingClassifier類常用的部分參數及其說明。參數名稱參數說明loss接收字符串。指定要優化的損失函數。“log_loss”指的是二項和多項偏差,與logistic回歸中使用的相同。對于具有概率輸出的分類,它是一個很好的選擇。對于“指數”損失,梯度提升恢復AdaBoost算法。默認值為log_losslearning_rate接收float類型的值。表示學習率通過學習率(learning_rate)縮小每個樹的貢獻。在learning_rate和n_estimators之間需要進行權衡。值必須在[0.0,inf)的范圍內。默認值為0.1n_estimators接收int類型的值。表示要執行的提升階段的數量。梯度提升對過擬合是相當魯棒的,因此較大的數字通常會帶來更好的性能。值必須在[1,inf]的范圍內。默認值為100subsample接收float類型的值。表示用于擬合單個基礎學習對象的樣本比例。如果小于1.0,則會導致隨機梯度提升。子樣本與參數n_estimators交互。選擇子樣本<1.0會導致方差減小和偏差增大。取值范圍必須在(0.0,1.0]之間。默認值為1.0min_samples_split接收int或float類型的值。表示分裂一個內部節點所需的最小樣本數;如果是int,值必須在[2,inf]范圍內。如果是float,值必須在(0.0,1.0]范圍內,min_samples_split將是ceil(min_samples_split*n_samples)。默認值為2min_samples_leaf接收int或float類型的值。表示葉子節點所需的最小樣本數;如果是int,值必須在[1,inf]范圍內。如果是float,值必須在(0.0,1.0)范圍內,min_samples_leaf將是ceil(min_samples_leaf*n_samples)。默認值為1max_depth接收int類型的值或None。表示個體回歸估計量的最大深度。默認值為3max_features接收int或float類型的值。表示在尋找最佳切分時需要考慮的特征數量;如果是int,值必須在[1,inf]范圍內。如果是浮點數,那么特征值必須在(0.0,1.0]的范圍內,并且每次劃分時考慮的特征值將是max(1,int(max_features*n_features_in_))。默認值為None集成算法3.Stacking當訓練數據很多時,可以用Stacking(堆疊)算法進行集成學習。Stacking算法的思想是將一系列初級學習器的訓練結果當作特征,輸入一個次級學習器中,最終的輸出結果由次級學習器產生。Stacking算法先從初始數據集訓練出初級學習器,然后“生成”一個新數據集用于訓練次級學習器。在這個新數據集中,初級學習器的輸出被當作樣本輸入特征,而初始樣本的標記仍被當作樣例標記。Stacking對于訓練集,給定T個初級學習算法,Stacking算法的具體步驟如下(以k折交叉驗證為例)。將數據集D隨機劃分成k個大小相同的集合,和分別表示第j折的測試集和訓練集。針對T個初級學習算法,初級學習器是通過在上使用第t個學習算法而得的。對中的每個樣本,令,表示在上的輸出結果,則通過T個初級學習器得到的輸出結果為,標記部分為。在整個交叉驗證過程結束后,從這T個初級學習器產生的次級訓練集是,最終將用于訓練次級學習器。Stacking使用scikit-learn庫中ensemble模塊的StackingClassifier類可以建立Stacking分類模型。classsklearn.ensemble.StackingClassifier(estimators,final_estimator=None,*,cv=None,stack_method='auto',n_jobs=None,passthrough=False,verbose=0)參數名稱參數說明estimators接收列表。表示將堆疊在一起的基礎估計器。無默認值final_estimator接收字符串。表示一個用于組合基本估計器的分類器,即次級分類器。默認值為Nonecv接收int類型的值或交叉驗證生成器。表示交叉驗證生成器。默認值為Nonestack_method接收字符串。表示每個基本估計器調用的方法,可選值有auto、predict_proba、decision_function、predict。默認值為auto集成算法4.基于集成算法的乳腺癌預測基于scikit-learn庫中自帶的乳腺癌數據集(breast_cancer),分別構建隨機森林模型、梯度提升決策樹模型和Stacking分類模型對乳腺癌進行預測。各個模型預測結果的準確率如下。模型準確率隨機森林模型93.86%梯度提升決策樹模型91.23%Stacking分類模型96.49%分類與回歸聚類關聯規則時間序列智能推薦深度學習聚類隨著高鐵、動車等鐵路交通的發展,航空公司的業務受到了巨大的沖擊,行業內的競爭也愈發激烈。航空公司需要客戶價值分析,這個目標便可通過聚類分析來實現。采集乘客乘機行為的數據評判乘客的價值并對乘客進行細分有價值的乘客群體和需要關注的乘客群體具有不同價值的乘客群體提供個性化服務制訂相應的營銷策略聚類分析是在沒有給定劃分類別的情況下,根據數據相似度進行樣本分組的一種方法。聚類模型可以建立在無類標記的數據上。聚類算法是一種不依賴預設類標記的學習算法。聚類算法的輸入數據是一組未被標記的樣本,根據數據自身的距離或相似度將它們劃分為若干組,劃分的原則是組內樣本(內部)距離最小化而組間(外部)距離最大化(右圖)。常用的聚類算法常用的聚類算法常用的聚類方法類別主要算法劃分(分裂)方法K-Means算法、K-Medoids算法、CLARANS算法(基于選擇的算法)層次分析方法BIRCH算法(平衡迭代規約和聚類)、CURE算法(代表點聚類)、CHAMELEON算法(動態模型)基于密度的方法DBSCAN算法(基于高密度連接區域)、DENCLUE算法(密度分布函數)、OPTICS算法(對象排序識別)基于網格的方法STING算法(統計信息網絡)、CLIOUE算法(聚類高維空間)、WAVE-CLUSTER算法(小波變換)基于模型的方法統計學方法、神經網絡算法常用的聚類算法常用的聚類算法算法名稱算法描述K-MeansK-Means聚類算法又稱為快速聚類算法,在最小化誤差函數的基礎上將數據劃分為預定的類數K。該算法的原理簡單,便于處理大量數據K-MedoidsK-Medoids算法不將簇中對象的平均值作為簇中心,而選用簇中離平均值最近的對象作為簇中心DBSCANDBSCAN算法是指帶有噪聲的應用程序的基于密度的空間聚類算法,可查找出高密度的核心樣本并從中擴展聚類,適用于包含相似密度簇的數據系統聚類系統聚類又稱為層次聚類,分類的單位由高到低呈樹形結構,且所處的位置越低,其包含的對象就越少,但這些對象間的共同屬性就越多。該聚類算法只適合在數據量小的時候使用;若在數據量大的時候使用,則速度會非常慢聚類模型評價聚類分析僅根據樣本數據本身將樣本分組,組內的對象相互之間是相似的(相關的),而不同組中的對象是不同的(不相關的)。組內的相似度越大,組間差別越大,聚類效果就越好。purity評價法purity評價法是極為簡單的一種聚類評價方法,只需計算正確聚類數占總數的比例。是聚類的集合,表示第k個聚類的集合。表示需要被聚類的集合,表示第i個聚類對象。n表示被聚類集合對象的總數。聚類模型評價RI評價法RI評價法是一種用排列組合原理來對聚類進行評價的方法。R是指被聚在一類的兩個對象被正確地分類的數量。W是指不應該被聚在一類的兩個對象被正確分開的數量。M是指不應該放在一類的對象被錯誤地放在了一類的數量。D是指不應該分開的對象被錯誤地分開的數量。聚類模型評價F值評價法F值評價法是由上述RI評價法衍生出的一個方法。RI評價法將準確率p和召回率r視為同等重要,而事實上,有時候可能需要某一特性更重要一點,這時候就適合使用F值評價法。聚類模型評價FM系數FM系數(FowlkesandMallowsIndex,FMI)屬于聚類模型評價指標中的一種外部評價指標,這一類評價指標是將聚類結果與某個“參考模型”進行比較。FM系數的計算公式為。聚類模型評價DB指數DB指數(Davies-BouldinIndex,DBI)屬于聚類模型評價指標中的一種內部評價指標。這一類評價指標是通過直接考察聚類結果,而不利用任何參考模型進行模型的評價。聚類模型評價聚類結果所形成的簇集合為簇,參考模型的簇集合為簇D,則FM系數和DB指數中的公式符號說明如下。符號含義符號含義a在簇C中屬于相同簇,且在簇D中屬于相同簇的樣本對的數量簇C的中心點b在簇C中屬于相同簇,但在簇D中屬于不同簇的樣本對的數量簇Ci內樣本之間的平均距離c在簇C中屬于不同簇,但在簇D中屬于相同簇的樣本對的數量簇Cj內樣本之間的平均距離d在簇C中屬于不同簇,且在簇D中屬于不同簇的樣本對的數量簇Ci與簇Cj的中心點間的距離K-Means算法K-Means算法是典型的基于距離的非層次聚類算法。該算法在最小化誤差函數的基礎上將數據劃分為預定的類數K,采用距離作為相似度的衡量指標,即兩個對象距離越近,相似度就越大。1.算法過程K-Means算法使用K-Means算法聚類的過程。聚類的結果依賴于隨機選擇的初始聚類中心,因此結果可能會嚴重偏離全局最優分類。在實踐中,為了得到較好的結果,通常會選擇不同的初始聚類中心,多次運行K-Means算法。在所有對象分配完成,重新計算K個聚類中心時,對于連續屬性,聚類中心取該簇的均值;但是當樣本的某些屬性是類別型變量時,均值可能無定義,這時便需要使用其他算法進行聚類。從N個樣本數據中隨機選取K個對象作為初始的聚類中心分別計算每個樣本到各個聚類中心的距離,將對象分配到距離最近的聚類中所有對象分配完成后,重新計算K個聚類的中心與前一次計算得到的K個聚類中心比較,聚類中心是否發生變化停止計算并輸出聚類結果是否K-Means算法2.數據類型與相似度的度量連續屬性對于連續屬性,要先對各屬性值進行零-均值標準化,再進行距離的計算。K-Means聚類算法中,一般需要計算樣本之間的距離、樣本與簇之間的距離及簇與簇之間的距離。度量樣本之間的相似度常用的是歐幾里得距離、曼哈頓距離和閔可夫斯基距離。樣本與簇之間的距離可以用樣本到簇中心的距離表示。簇與簇之間的距離可以用簇中心之間的距離表示。數據類型與相似度的度量連續屬性設有p個屬性來表示n個樣本的數據矩陣,則歐幾里得距離的計算公式為曼哈頓距離的計算公式為閔可夫斯基距離的計算公式為q為正整數,q=1時即為曼哈頓距離;q=2時即為歐幾里得距離。數據類型與相似度的度量文檔數據文檔數據使用余弦相似度度量,先將文檔數據整理成文檔-詞矩陣格式,如下。兩個文檔之間的相似度的計算公式為在式中,i和j為空間中的兩個向量,|i|和|j|表示向量的模,則為通過這兩個向量計算出的夾角的余弦值,該余弦值即為兩個文檔之間的相似度。

lostwinteamscoremusichappysad……coach文檔一142808710……6文檔二113341164……7文檔三96773148……5K-Means算法3.目標函數使用誤差平方和(SumofSquaredError,SSE)作為度量聚類質量的目標函數,對于兩種不同的聚類結果,選擇誤差平方和較小的分類結果。連續屬性的SSE計算公式文檔數據的SSE計算公式簇Ei的聚類中心

的計算公式

符號含義符號含義聚類簇的個數簇

的聚類中心第

個簇數據集中樣本的個數對象(樣本)第

個簇中樣本的個數4.具體實現K-Means算法部分乘客的乘機行為屬性數據。屬性字段說明。IDLRFMC090.20012105807170.962186.56771402936781.252287.167111352837121.255368.23397232813361.091460.53351523099280.971574.70079922945850.968697.70011012870420.965748.4003732872300.962834.2676563214890.828945.50015643750740.708字段名含義ID乘客的IDL成為會員的時長,值越大表示會員資歷越高R最近一次乘機距觀測窗口結束的月數,值越大表示乘機間隔時間長F乘機次數,值越大表示乘機次數越多M飛行總里程,值越大表示總里程數越大C平均折扣率,值越大表示折扣率越低具體實現使用K-Means聚類算法進行聚類模型的構建,并繪制各乘客群體的屬性分布雷達圖。采用K-Means聚類算法將用戶聚類成5個群體,得到的各群體屬性聚類輸出結果。分群類別乘客群0乘客群1乘客群2乘客群3乘客群4樣本個數15741537051821233724358樣本個數占比24.99%8.53%8.23%19.59%38.67%聚類中心L1.1722820.490059-0.037574-0.317880-0.696810R-0.383498-0.8084850.0293751.674973-0.428453F-0.0796512.497247-0.272733-0.573725-0.150507M-0.0869192.438441-0.286262-0.536069-0.149004C-0.1580820.3244081.959051-0.209650-0.283488具體實現重要保持乘客:平均折扣率高(C↑),最近有乘機記錄(R↓),乘機次數多(F↑)或總里程多(M↑)。重要發展乘客:平均折扣率高(C↑),最近有乘機記錄(R↓),乘機次數少(F↓)或總里程少(M↓)。重要挽留乘客:平均折扣率高(C↑),乘機次數多(F↑)或總里程多(M↑),最近無乘機記錄(R↑)。一般乘客:平均折扣率低(C↓),最近有乘機記錄(R↓),乘機次數少(F↓)或總里程少(M↓),入會時間短(L↓)。低價值乘客:平均折扣率低(C↓),最近無乘機記錄(R↑),乘機次數少(F↓)或總里程少(M↓),入會時間短(L↓)。繪制各乘客群體的屬性分布雷達圖。具體實現使用scikit-learn庫中cluster模塊的KMeans類可以實現K-Means聚類算法對數據進行聚類。classsklearn.cluster.KMeans(n_clusters=8,*,init='k-means++',n_init='auto',max_iter=300,tol=0.0001,verbose=0,random_state=None,copy_x=True,algorithm='lloyd’)參數名稱參數說明n_clusters接收int類型的值。表示要形成的簇的數量以及要生成的質心的數量。默認值為8init接收方法名。表示所選擇的初始化方法,可選值有'k-means++'、'random'。默認值為'k-means++'n_init接收int類型的值。表示使用不同的質心種子運行k-means算法的次數。默認值為automax_iter接收int類型的值。k-means算法單次運行的最大迭代次數。默認值為300tol接收float類型的值。表示相對容忍度根據連續兩次迭代的聚類中心的差值來判定收斂性。默認值為0.0001random_state接收int類型的值。表示確定質心初始化的隨機數生成。默認值為None密度聚類基于密度的聚類算法又稱為密度聚類算法,該類算法假設聚類結果能夠通過樣本分布的緊密程度確定。密度聚類算法的基本思想是:以樣本點在空間分布上的稠密程度為依據進行聚類,若區域中的樣本密度大于某個閾值,則將相應的樣本點劃入與之相近的簇中。具有噪聲的基于密度聚類(DBSCAN)算法是一種典型的密度聚類算法。該算法從樣本密度的角度考察樣本之間的可連接性,并由可連接樣本不斷擴展直到獲得最終的聚類結果。密度聚類對于樣本集,給定距離參數和數目參數MinPts,任一樣本點D,定義如下概念。將集合稱為樣本點的鄰域,若,則稱為一個核心對象。若樣本點屬于的鄰域,且為一個核心對象,則稱由密度直達。對于樣本點和,若存在樣本點序列,其中,,且由密度直達,則稱由密度可達。若存在樣本點,使得樣本點和均由密度可達,則稱與密度相連。密度聚類取距離參數、數目參數,核心對象、密度直達、密度可達和密度相連的概念如圖。對于當前參數而言,樣本點、、為核心對象,而樣本點不是核心對象;由密度直達;由密度可達;

與密度相連。DBSCAN算法將簇C描述為滿足以下兩個條件的非空子集。若且,則與密度相連。若且由密度可達,則。密度聚類DBSCAN算法的具體步驟如下。(1)輸入樣本集合,初始化距離參數和數目參數。(2)確定核心對象集合。(3)在核心對象集合中隨機選擇一個核心對象作為種子。(4)根據簇劃分原則生成一個簇,并更新核心對象集合。(5)若核心對象集合為空,則算法結束,否則返回步驟(3)。(6)輸出聚類結果。密度聚類對生成的兩簇非凸數據和一簇對比數據使用DBSCAN類構建密度聚類模型,聚類結果如圖。密度聚類模型對非凸數據(圖中的兩個環形部分)的聚類效果很好,可以區分出不同的非凸數據。其中,三角形部分為噪聲數據。密度聚類使用scikit-learn庫中cluster模塊的DBSCAN類可以實現密度聚類算法對數據進行聚類。sklearn.cluster.dbscan(X,eps=0.5,*,min_samples=5,metric='minkowski',metric_params=None,algorithm='auto',leaf_size=30,p=2,sample_weight=None,n_jobs=None)參數名稱參數說明eps接收float類型的值。表示兩個樣本之間的最大距離,其中一個樣本被認為是另一個樣本的鄰域。默認值為0.5metric接收字符串或callable類型的值。表示在計算特征數組中實例之間的距離時使用的度量。默認值為euclideanmetric_params接收字典。表示度量函數的其他關鍵字參數。默認值為Nonealgorithm接收算法名稱。表示NearestNeighbors模塊用于計算逐點距離和尋找最近鄰居的算法。默認值為auton_jobs接收int類型的值。表示鄰居搜索需要并行執行的作業數。默認值為None層次聚類層次聚類法(HierarchicalClusteringMethod)又稱為系統聚類法,它試圖在不同層次上對樣本集進行劃分,進而形成樹形的聚類結構。樣本集的劃分既可采用聚集系統法,也可采用分割系統法。聚集系統法一種“自底向上”的聚合策略。基本思想:開始時將每個樣本點作為單獨的一類,然后將距離最近的兩類合并成一個新類,重復進行將最近的兩類合并成一類的操作,直至所有的樣本歸為一類。分割系統法一種“自頂向下”的分割策略。基本思想:開始時將整個樣本集作為一類,然后按照將某種最優準則將它分割成距離盡可能遠的兩個子類,再用同樣的方法將每個子類分割成兩個子類,從中選擇一個最優的子類,則此時樣本集被劃分成3類,以此類推,直至每個樣本自成一類或達到設置的終止條件。層次聚類假設類、類,則兩類之間的距離如下。在運用層次聚類法時,需要對類與類之間的距離

溫馨提示

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

評論

0/150

提交評論