『壹』 目前最流行的機器學習演算法是什麼
毫無疑問,機器學習在過去幾年越來越受歡迎。由於大數據是目前技術行業最熱門的趨勢,機器學習是非常強大的,可以根據大量數據進行預測或計算推理。
如果你想學習機器演算法,要做坦從何下手呢?
監督學習
1. 決策樹:決策樹是一種決策支持工具,使用的決策及其可能產生的後果,包括隨機事件的結果,資源消耗和效用的樹狀圖或模型。
從業務決策的角度來看,決策樹是人們必須要選擇是/否的問題,以評估大多數時候作出正確決策的概率。它允許您以結構化和系統的方式來解決問題,以得出邏輯結論。
2.樸素貝葉斯分類:樸素貝葉斯分類器是一種簡單的概率分類器,基於貝葉斯定理,其特徵之間具有強大(樸素)的獨立性假設。
特徵圖像是方程 - P(A | B)是後驗概率,P(B | A)是似然度,P(A)是類先驗概率,P(B)是預測先驗概率。
一些現實世界的例子是:
判斷郵件是否為垃圾郵件
分類技術,將新聞文章氛圍政治或體育類
檢查一段表達積極情緒或消極情緒的文字
用於面部識別軟體
3.普通最小二乘回歸:如果你了解統計學,你可能已經聽說過線性回歸。最小二乘法是一種執行線性回歸的方法。
您可以將線性回歸視為擬合直線穿過點狀分布的任務。有多種可能的策略可以做到這一點,「普通最小二乘法」策略就像這樣 -你可以畫一條線,然後把每個數據點,測量點和線之間的垂直距離,添加上去;擬合線將是距離總和的盡可能小的線。
線性是指您正在使用的模型來迎合數據,而最小二乘可以最小化線性模型誤差。
4.邏輯回歸: Logistic回歸是一個強大的統計學方法,用一個或多個解釋變數建模二項式結果。它通過使用邏輯函數估計概率,來衡量分類因變數與一個或多個獨立變數之間的關系,後者是累積邏輯分布。
邏輯回歸用於鏈晌生活中:
信用評級
衡量營銷活動的成功率
預測某一產品的收入
某一天會有地震嗎
5.支持向量機: SVM是二元分類演算法。給定N維空間中兩種種類型的點,SVM生成(N-1)維的超平面將這些點分成2組。
假設你有一些可以線性分離的紙張中的兩種類型的點。SVM將找到一條直線,將這些點分成兩種類型,並盡可能遠離所有這些點。
在規模上,使用SVM解決的一些特大的問題(包括適當修改的實現)是:廣告、人類基因剪接位點識別、基於圖像的性別檢測,大規模圖像分類...
6.集成方法:集成方法是構建一組分類器的學習演算法,然後通過對其預測進行加權投票來對新的數據點進行分類。原始的集成方法是貝葉斯平均法,但更新的演算法包括糾錯輸出編碼、bagging和boosting。
那麼集成方法如何工作,為什麼它們優於單個模型?
均衡偏差:如果你均衡了大量的傾向民主黨的投票和大量傾向共和黨的投票,你總會得到一個不那麼偏頗的結果。
降低方差:集合大量模型的參考結果,噪音會小於單個模型的單個結果。在金融領域,這被稱為投資分散原則(diversification)——一個混搭很多種股票的投資組合,比單獨的股票更少變故。
不太可能過度擬合:如果您有單個模型不完全擬合,您以簡單的方式(平均,加權平均,邏輯回歸)結合每個模型建模,那麼一般不會發生過擬合。
無監督學習
7. 聚類演算法:聚類是對一組對象進行分組的任務,使得同一組(集群)中的對象彼此之間比其他組中的對象更相似。
每個聚類演算法是不同的,比如:
基於Centroid的演算法
基於連接的演算法
基於密度的演算法
概率
降維
神經網路/深度學習
8. 主成分分析: PCA是使用正交變換將可能相關變數的觀察值轉換為主成分的線性不相關變數值的一組統計過程。
PCA的一些應用包括壓縮、簡化數據、便於學習、可視化。請注意,領域知識在選擇是否繼續使用PCA時非常重要。數據嘈雜的情況(PCA的所有組件都有很大差異)的情況不適用。
9.奇異值分解:在線性代數中,SVD是真正復雜矩陣的因式分解。對於給定的m * n矩陣M,存在分解,使得M =UΣV,其中U和V是酉矩陣,棚胡鋒Σ是對角矩陣。
PCA實際上是SVD的簡單應用。在計算機視覺技術中,第一個人臉識別演算法使用PCA和SVD,以將面部表示為「特徵臉」的線性組合,進行降維,然後通過簡單的方法將面部匹配到身份;雖然這種方法更復雜,但仍然依賴於類似的技術。
10.獨立成分分析: ICA是一種統計技術,用於揭示隨機變數、測量或信號集合的隱藏因素。ICA定義了觀察到的多變數數據的生成模型,通常將其作為大型樣本資料庫。
在模型中,假設數據變數是一些未知潛在變數的線性混合,混合系統也是未知的。潛變數被假定為非高斯和相互獨立的,它們被稱為觀測數據的獨立成分。
ICA與PCA相關,但它是一種更強大的技術,能夠在這些經典方法完全失敗時找到潛在的源因素。其應用包括數字圖像、文檔資料庫、經濟指標和心理測量。
『貳』 5. 過擬合及其避免
Fundamental concepts:generalization(泛化、普遍化、一般化);fitting (擬合)and overfitting(過擬合);complexity control(復雜度控制)。
Exemplary techniques:cross-validation(交叉驗證);attribute selection(特徵/屬性選擇);tree pruning(樹剪枝);regularization(正則化)。
Generalization(泛化):指一個模型對於學習集以外的新數據的適應性。
在討論怎麼應對過擬合之前,我們先要知道如何識別過擬合。
Fitting Graph: 擬合圖形以一個復雜度函數的形式來展示模型的精確程度。
為了檢測過擬合,需要引入一個數據科學的概念, holdout data (留出法,留出數據)。
直接點說就是把學習集分一些數據出來當做模型驗證數據,當留出法數據在這冊咐帆個場景下被使用時,通常被叫做「測試集」(相比學習集而言)。
模型結果函數越復雜,對學習集的擬合度則越高,但對測試集的貼合度會降低,這是一個反向關系,使用這個反向關系來尋找合適的模型函數的復雜度,以避免過擬合狀況的發生。(可參考下圖擬合圖進行查看)
關於前面的churn案例的一個擬合圖,如下圖5-2所示:
關於churn的擬合圖中錯誤率的判斷,基於churn數據表中對target variable的yes和no的定義,即已知對於新加入的要素,默認不會churn也就是不會換運營商,新元素no churn=right,churn=wrong。基於全量樣本下,會有一個每年固定的churn幾率,這個固定的churn幾率即為y軸上b的值,這個幾率就叫做基礎概率即base rate,在樸素貝葉斯的概率預測方法中,base rate被使用的較為廣泛,後續章節會有相關介紹。
決策樹的每一個葉子節點是否要拆分的依簡猛據是查看當前該葉子節點中的所有元素是否有同樣的target variable值,若都相同,則不用再拆分,當做葉子節點處理。
決策樹的復雜程度取決於它的節點數量。
決策樹擬合曲線左側,樹小且預測精度低,右側精度高。可以看出在sweet spot右側,學習集適配度隨著節點增多而增加,但是測試集准確度隨著節點增多而降低,復雜度多過sweet spot時就發生了過擬合。
不幸的是,目前還沒有一個理論型的方法可以預測何時能達到這個sweet spot,只能憑借經驗主義來做判斷。
增加函數復雜度可能有以下情形:
1. 增加變數的數量(即公式中 的數量,i=1,2,3...);
2. 增加非線性變數,如新增變數 ;
3. 增加非線性變數,如新增變數 ;
此時目標函數變為:
這個就是一個典型的非直線函數,並且典型來說,更多參數也就是更高維度,一般帶來更高的預測准確度。
這里還通過之前的鳶尾花的花瓣和花萼寬度的例子來解釋線性函數的過擬合。
下面我們將原先的2個變數引申為3個變數,即原先的花瓣寬度(petal width)、花萼寬度(sepal width)加上花萼寬度的平方,得到下圖所示的曲線:
加入平州雹方變數後,分割線均變為了拋物線(parabola)。
這個小節會討論過擬合如何產生和為何產生,這節不重要,跳過也不影響學習。
模型越復雜,就越有可能產生有害的假的關聯關系(feature和target variable之間的關聯關系),這種錯誤關聯關系的泛化影響了對學習集以外的新元素的target variable的預測,從而降低了模型預測的准確度
可以發現通過上述學習集,得出:
1. x=p時,75%可能性class是c1,25%可能性class是c2,所以可以通過x進行class預測;
2. 當已經計入x變數後再添加y變數,則y對class的預測不起作用,即x=p時y=r則class都是c1,x=p時y=s則class都是c2,在決策樹中不具備新的預測意義;
3. 但是可以得出結論x=p並且y=r時,class必為c1,這個節點的增加可以獲得新的information gain,但是卻把整體模型的預測錯誤率從25%提高到30%,也就是增加的information gain同時增加了錯誤率。
從這個案例總結出:
1. 這種過擬合現象不僅出現在決策樹模型中,只是決策樹模型中更明顯能看出來;
2. 這種現象並不是表5-1的數據特殊性導致的,所有數據集都會出現類似的問題;
3. 沒有一個通用的理論方案來提前知道這個模型是否已經過擬合了,所以一定要留下一個holdout set(即測試集)來對過擬合現象的發生進行判斷。
交叉驗證的步驟如下:
1. 將數據集分成k個部分並且分別進行標簽標記,這些部分命名為folds(子類),通常情況下k會取5或者10;
2. 隨後對分組好的數據進行k次模型學習和模型驗證的迭代,在每一次迭代中,一個不同的子類被選做測試集,此時其他幾個子類共同組成學習集,所以每一個迭代都會有(k-1)/k的數據當做學習集,有1/k的數據當做測試集。
交叉驗證的過程直觀展現如下圖:
3. 通過k次迭代後,可以得到k個不同的模型結果,可通過這k個結果計算出平均值和標准差。
(得到平均值就是數字化的預測結果,而標准差則是浮動范圍)
通過這個數據實踐可以發現如下幾個點:
1. 各子類平均准確度為68.6%,而之前章節全量數據當學習集時的預測准確度為73%,可見全量數據做學習集時出現了顯著的過擬合現象;
2. 不同子類的預測准確度有差異,所以取平均值是一個好主意,同時也可以使用這些數據產生的方差;
3. 對比邏輯回歸和決策樹的結果,發現兩種模型在分組3精確度都不高,在分組10精確度都較高,但兩種模式是不同的,並且邏輯回歸展示了較低的整體准確度64.1%和較高的標准差1.3,所以在這個數據集上面,決策樹更適用,因為准確度高並且預測結果更穩定(方差較小),但這個不是絕對的,換到其他數據集,結果就完全不一樣了。
模型的 泛化表現 和學習集 數據數量 的關系被叫做 學習曲線(learning curve) 。
學習曲線(learning curve)展示的是基於測試集的泛化表現,針對訓練集的數據數量來統計,和訓練集數據量相對應(x軸)。
擬合圖(fitting graph)展示泛化表現同時也展示模型在學習集的表現,但是和模型的復雜度相對應(x軸),擬合圖中訓練集數據量通常不會變化。
先從決策樹模型開始,逐漸得到一個可適用於多種模型的廣泛的避免過擬合的機制(mechanism)。
決策樹中一般使用的避免過擬合方法有以下兩種:
1. 在決策樹過於龐大前停止擴張;
2. 持續擴張決策樹,然後回刪「prune」決策樹,減小它的規模。
關於控制決策樹的復雜度的方法包括:
1. 限制每個葉子節點的最小元素個數。那麼這個最小個數怎麼定呢?
統計學家使用了一種假設測試「hypothesis test」。在停止擴張決策樹時,先判定增加節點獲得的information gain是否是通過運氣(chance)獲得的,如果不是通過運氣獲得的,那麼就繼續擴張決策樹。這個判斷基於一個顯著性(p-value),通過p-value來定義分叉後的差異是否是由運氣產生的,通常這個幾率使用5%。
2. 對一個大的決策樹進行刪節點「prune」,表示使用葉子節點來替換其他的葉子節點或分叉節點。
這個方法取決於替換後,模型的准確度是否會降低,這個過程可以持續迭代直到任何一次替換都會降低模型准確度為止。
那麼接下來思考下,如果我們使用所有類型的復雜度來製作決策樹會怎樣?例如,搭一個節點就停止,然後再搭一個2節點的樹,再另外搭一個三節點的樹,然後得到了一堆不同復雜度的決策樹,然後只要有一個方法能證明模型的泛化表現,那麼我們就可以選擇到泛化表現最好的這個模型。(應該是拿來承上啟下的一段)
嵌套留出測試(nested holdout testing) :將原有的學習集進行再次拆分,拆為子學習集(訓練集)和子確認集(validation set for clarity),然後通過子學習集來訓練模型,然後用子確認集來驗證。
嵌套交叉驗證(nested cross-validation) :假如我們要對一組數據進行建模,這組數據有一個未知的復雜度變數C,此時首先對交叉驗證中的每個場景(即n個fold(組)為訓練集,1個fold為測試集)進行一次僅針對訓練集數據的交叉驗證,得到此時的最優C值,找到這個場景下的最優復雜度情況,然後再使用這個C值來進行真正的全場景全fold的交叉驗證。(與一般的交叉驗證的區別在於,先只用訓練集數據找到最優復雜度參數C,再執行全數據的交叉驗證)
來使用決策樹方法簡單解釋下嵌套交叉驗證,根據圖5-3所示,最優准確率的決策樹節點數是122個,那麼就先用子訓練集和確認集來得到122節點的這個數值,然後再使用122這個節點數,來對全訓練集數據進行建模,此處的122個節點數就可以當做復雜度參數C。
若使用嵌套交叉驗證對5個fold的數據集進行分析,那麼需要進行30次建模,即對每個折疊情況下的訓練集進行子訓練集和確認集的拆分的時候,將4個原訓練集的fold再拆成5份進行參數C的確認,此時每個outerloop的inner loop包含5個模型(共6個),故一共需要30次建模,可參考下圖及鏈接:
序列向前選擇(sequential forward selection - SFS):仍然是測試集(拆分為子測試集和確認集)、驗證集,當有n多個特徵時,先使用一個feature建模,然後加上第二個,選擇其中最好的,然後加上第三個在三個feature的模型中選最好的,以此類推,逐個增加,直到增加feature不能讓確認集數據預測更准確為止,此時使用的feature就是建立整個數據集模型要使用的feature。(同樣也可以先用全量feature建模,然後一個一個減少,方法類似,名稱為sequential backward elimination)
正則化(regularization) :將數字化的回歸函數結果簡單化的過程,模型擬合度越高越好,同時越簡單也越好。
邏輯回歸的正則化表達式如下:
其中, 是針對這個回歸的最佳模型結果, 是懲罰系數, 是懲罰函數。
通過給原有的最佳模型增加懲罰函數來調整最終結果,得到正則化後的數學表達式。
最常用到的懲罰是各系數(各w值)的平方和,通常叫做w的L2范數(L2-norm of w),當系數很大時,w值的平方和會是一個很大的懲罰值(較大的正值或負值w會使模型更貼合學習集數據,同時也會使L2范數變大即懲罰增大,以此來應對過擬合)。
嶺回歸(ridge regression) :是一種專用於共線性數據分析的有偏估計回歸方法,實質上是一種改良的最小二乘估計法,通過放棄最小二乘法的無偏性,以損失部分信息、降低精度為代價獲得回歸系數更為符合實際、更可靠的回歸方法,對病態數據的擬合要強於最小二乘法(least-squares linear regression)(將L2-norm懲罰應用在最小二乘法上之後得到的模型結果)。
最小二乘法(ordinary least squares) :最小二乘法是解決曲線擬合問題最常用的方法。其基本思路是:令
其中, 是事先選定的一組線性無關的函數, (k=1、2...m,m<n)是待定系數,擬合準則是使 (y=1,2...n)與 的距離 的平方和最小,稱為最小二乘准則。
如果不使用系數平方和,而使用系數的絕對值來當做懲罰函數,此時叫做L1范數(L1-norm),加上懲罰後的模型稱為lasso(LASSO回歸)或者L1正則化(L1-regularization)。
L1正則化會使很多系數歸零,並且可以通過系數歸零來進行feature的選擇。
支持向量機的正則化表達式如下:
相比於邏輯回歸,支持向量機中把最佳函數更換為hinge loss(鉸鏈損失)判定函數的擬合度,鉸鏈損失越低擬合度越好,所以函數前面加了負號。
grid search(網格搜索):在所有候選的參數選擇中,通過循環遍歷,嘗試每一種可能性,表現最好的參數就是最終的結果。其原理就像是在數組里找最大值。(為什麼叫網格搜索?以有兩個參數的模型為例,參數a有3種可能,參數b有4種可能,把所有可能性列出來,可以表示成一個3*4的表格,其中每個cell就是一個網格,循環過程就像是在每個網格里遍歷、搜索,所以叫grid search),本書中所提到的嵌套交叉驗證尋找最優解的過程也被叫做網格搜索。
場景簡介:你的投資公司要成立一個投資基金,將資金投入到1000個基金中,每個基金包含了若干隨機挑選的股票,5年後,這些基金有些漲了有些跌了,你可以清算掉跌的,留下漲的,然後宣稱你的公司投資回報率很好。
更直觀比喻,拿1000個硬幣扔很多次,肯定會有某個硬幣正面朝上的概率高於50%很多,那麼找到這個硬幣當成最好的硬幣,其實是很傻逼的一種決策。這種問題就叫做多重比較問題。
也就是說通過學習集來得到的多個不同復雜度的模型,就像這多個硬幣一樣,從這里挑選出來的最優模型,在進行預測時,可能也會遇到「最好硬幣」相同的問題,即多重比較誤區。
總結就是順了一遍前面講的知識點,沒啥新內容。
『叄』 數據挖掘演算法有哪些
統計和可視化要想建立一個好的預言模型,你必須了解自己的數據。最基本的方法是計算各種統計變數(平均值、方差等)和察看數據的分布情況。你也可以用數據透視表察看多維數據。數據的種類可分為連續的,有一個用數字表示的值(比如銷售量)或離散的,分成一個個的類別(如紅、綠、藍)。離散數據可以進一步分為可排序的,數據間可以比較大小(如,高、中、低)和標稱的,不可排序(如郵政編碼)。圖形和可視化工具在數據准備階段尤其重要,它能讓你快速直觀的分析數據,而不是給你枯燥乏味的文本和數字。它不僅讓你看到整個森林,還允許你拉近每一棵樹來察看細節。在圖形模式下人們很容易找到數據中可能存在的模式、關系、異常等,直接看數字則很難。可視化工具的問題是模型可能有很多維或變數,但是我們只能在2維的屏幕或紙上展示它。比如,我們可能要看的是信用風險與年齡、性別、婚姻狀況、參加工作時間的關系。因此,可視化工具必須用比較巧妙的方法在兩維空間內展示n維空間的數據。雖然目前有了一些這樣的工具,但它們都要用戶「訓練」過他們的眼睛後才能理解圖中畫的到底是什麼東西。對於眼睛有色盲或空間感不強的人,在使用這些工具時可能會遇到困難。聚集(分群)聚集是把整個資料庫分成不同的群組。它的目的是要群與群之間差別很明顯,而同一個群之間的數據盡量相似。與分類不同(見後面的預測型數據挖掘),在開始聚集之前你不知道要把數據分成幾組,也不知道怎麼分(依照哪幾個變數)。因此在聚集之後要有一個對業務很熟悉的人來解釋這樣分群的意義。很多情況下一次聚集你得到的分群對你的業務來說可能並不好,這時你需要刪除或增加變數以影響分群的方式,經過幾次反復之後才能最終得到一個理想的結果。神經元網路和K-均值是比較常用的聚集演算法。不要把聚集與分類混淆起來。在分類之前,你已經知道要把數據分成哪幾類,每個類的性質是什麼,聚集則恰恰相反。關聯分析關聯分析是尋找資料庫中值的相關性。兩種常用的技術是關聯規則和序列模式。關聯規則是尋找在同一個事件中出現的不同項的相關性,比如在一次購買活動中所買不同商品的相關性。序列模式與此類似,他尋找的是事件之間時間上的相關性,如對股票漲跌的分析。關聯規則可記為A==>B,A稱為前提和左部(LHS),B稱為後續或右部(RHS)。如關聯規則「買錘子的人也會買釘子」,左部是「買錘子」,右部是「買釘子」。要計算包含某個特定項或幾個項的事務在資料庫中出現的概率只要在資料庫中直接統計即可。某一特定關聯(「錘子和釘子」)在資料庫中出現的頻率稱為支持度。比如在總共1000個事務中有15個事務同時包含了「錘子和釘子」,則此關聯的支持度為1.5%。非常低的支持度(比如1百萬個事務中只有一個)可能意味著此關聯不是很重要,或出現了錯誤數據(如,「男性和懷孕」)。要找到有意義的規則,我們還要考察規則中項及其組合出現的相對頻率。當已有A時,B發生的概率是多少?也即概率論中的條件概率。回到我們的例子,也就是問「當一個人已經買了錘子,那他有多大的可能也會買釘子?」這個條件概率在數據挖掘中也稱為可信度,計算方法是求百分比:(A與B同時出現的頻率)/(A出現的頻率)。讓我們用一個例子更詳細的解釋這些概念: 總交易筆數(事務數):1,000包含「錘子」:50包含「釘子」:80包含「鉗子」:20包含「錘子」和「釘子」:15包含「鉗子」和「釘子」:10包含「錘子」和「鉗子」:10包含「錘子」、「鉗子」和「釘子」:5 則可以計算出: 「錘子和釘子」的支持度=1.5%(15/1,000)「錘子、釘子和鉗子」的支持度=0.5%(5/1,000)「錘子==>釘子」的可信度=30%(15/50)「釘子==>錘子」的可信度=19%(15/80)「錘子和釘子==>鉗子」的可信度=33%(5/15)「鉗子==>錘子和釘子」的可信度=25%(5/20)
『肆』 股票的漲幅是怎麼計算的
個人熱內股票的漲幅計算一般有兩種方法:
一是按市盈率倍數乘以每股盈利,如每股盈利1.5元,市盈率是30倍,那合理的股價大概就是45。但市場不是理性的,看大盤情況,經濟情況,行業屬性,股民情緒等,合理市盈率會有所變化;
二是看莊家建倉成本,一般股價在莊家建倉成本兩倍內是比較安全的,莊家建倉是需要一段時間和成本的,股價離莊家建倉成本近,莊家出貨打壓後也無利可圖。最重要的還是學會逃頂,看換手率等,當然也會被莊家欺騙,在大陰線高換手率後繼續大漲。所以股市無絕對,這才是難的地方。
最後給大家四點的建議:
1.沒有人可以完全准確預測股票的漲跌,除非一個公司有高層提前給你透露某個消息,但這樣的基本都在小黑屋裡了。
2.股票的漲跌和市場上的各類大神技術無關。學個基本知識就可以,不要研究各類深奧技術,所有看似厲害的技術,其實都是事後話。
3.股票放中長線比短線收益高的多,因為做短線,你浪費精力還賺不到錢。
4.買業績好有前景的公司,不要買惡意炒作的公司。
『伍』 如何利用群體智慧預測股票價格的變化
利用群體智慧預測股票價格的變化,可以通過以下步驟進行:
1.選擇適當的平台:選擇適當的在線平台,如Google預測市場(GooglePredictionMarket),可以進行股票價格預測。
2.建立預測市場:利用平台建立股票價格預測市場,讓參與者可以用虛擬貨幣進行股票預測。
3.邀請專家參與:邀請股票市場的專家參與預測,並公開他們的預測結果。
4.讓參與者投票:讓其他參與者參與股票價格預測,他們可以通過投票進行預測市場交易。
5.整合預測結果:整合專家和參與者的預測結果,通過統計學和機器學習模型進行統計,最終得出股票價格預測結果。
6.監測預測結果:對預測結果進行監測,發現錯誤並進行調整,使其拍拍更加准確。
需要注意的是,群體智慧預測股票價格變化需要掘頃一定的襲散羨專業知識和技能,參與的人員需要具備一定的金融知識和經驗。同時,預測結果也存在誤差,需要進行適當的風險控制。
『陸』 數據挖掘演算法與生活中的應用案例
數據挖掘演算法與生活中的應用案例
如何分辨出垃圾郵件」、「如何判斷一筆交易是否屬於欺詐」、「如何判斷紅酒的品質和檔次」、「掃描王是如何做到文字識別的」、「如何判斷佚名的著作是否出自某位名家之手」、「如何判斷一個細胞是否屬於腫瘤細胞」等等,這些問題似乎都很專業,都不太好回答。但是,如果了解一點點數據挖掘的知識,你,或許會有柳暗花明的感覺。
本文,主要想簡單介紹下數據挖掘中的演算法,以及它包含的類型。然後,通過現實中觸手可及的、活生生的案例,去詮釋它的真實存在。 一般來說,數據挖掘的演算法包含四種類型,即分類、預測、聚類、關聯。前兩種屬於有監督學習,後兩種屬於無監督學習,屬於描述性的模式識別和發現。
有監督學習有監督的學習,即存在目標變數,需要探索特徵變數和目標變數之間的關系,在目標變數的監督下學習和優化演算法。例如,信用評分模型就是典型的有監督學習,目標變數為「是否違約」。演算法的目的在於研究特徵變數(人口統計、資產屬性等)和目標變數之間的關系。
分類演算法分類演算法和預測演算法的最大區別在於,前者的目標變數是分類離散型(例如,是否逾期、是否腫瘤細胞、是否垃圾郵件等),後者的目標變數是連續型。一般而言,具體的分類演算法包括,邏輯回歸、決策樹、KNN、貝葉斯判別、SVM、隨機森林、神經網路等。
預測演算法預測類演算法,其目標變數一般是連續型變數。常見的演算法,包括線性回歸、回歸樹、神經網路、SVM等。
無監督學習無監督學習,即不存在目標變數,基於數據本身,去識別變數之間內在的模式和特徵。例如關聯分析,通過數據發現項目A和項目B之間的關聯性。例如聚類分析,通過距離,將所有樣本劃分為幾個穩定可區分的群體。這些都是在沒有目標變數監督下的模式識別和分析。
聚類分析聚類的目的就是實現對樣本的細分,使得同組內的樣本特徵較為相似,不同組的樣本特徵差異較大。常見的聚類演算法包括kmeans、系譜聚類、密度聚類等。
關聯分析關聯分析的目的在於,找出項目(item)之間內在的聯系。常常是指購物籃分析,即消費者常常會同時購買哪些產品(例如游泳褲、防曬霜),從而有助於商家的捆綁銷售。
基於數據挖掘的案例和應用上文所提到的四種演算法類型(分類、預測、聚類、關聯),是比較傳統和常見的。還有其他一些比較有趣的演算法分類和應用場景,例如協同過濾、異常值分析、社會網路、文本分析等。下面,想針對不同的演算法類型,具體的介紹下數據挖掘在日常生活中真實的存在。下面是能想到的、幾個比較有趣的、和生活緊密關聯的例子。
基於分類模型的案例這裡面主要想介紹兩個案例,一個是垃圾郵件的分類和判斷,另外一個是在生物醫葯領域的應用,即腫瘤細胞的判斷和分辨。
垃圾郵件的判別郵箱系統如何分辨一封Email是否屬於垃圾郵件?這應該屬於文本挖掘的范疇,通常會採用樸素貝葉斯的方法進行判別。它的主要原理是,根據郵件正文中的單詞,是否經常出現在垃圾郵件中,進行判斷。例如,如果一份郵件的正文中包含「報銷」、「發票」、「促銷」等詞彙時,該郵件被判定為垃圾郵件的概率將會比較大。
一般來說,判斷郵件是否屬於垃圾郵件,應該包含以下幾個步驟。
第一,把郵件正文拆解成單片語合,假設某篇郵件包含100個單詞。
第二,根據貝葉斯條件概率,計算一封已經出現了這100個單詞的郵件,屬於垃圾郵件的概率和正常郵件的概率。如果結果表明,屬於垃圾郵件的概率大於正常郵件的概率。那麼該郵件就會被劃為垃圾郵件。
醫學上的腫瘤判斷如何判斷細胞是否屬於腫瘤細胞呢?腫瘤細胞和普通細胞,有差別。但是,需要非常有經驗的醫生,通過病理切片才能判斷。如果通過機器學習的方式,使得系統自動識別出腫瘤細胞。此時的效率,將會得到飛速的提升。並且,通過主觀(醫生)+客觀(模型)的方式識別腫瘤細胞,結果交叉驗證,結論可能更加靠譜。
如何操作?通過分類模型識別。簡言之,包含兩個步驟。首先,通過一系列指標刻畫細胞特徵,例如細胞的半徑、質地、周長、面積、光滑度、對稱性、凹凸性等等,構成細胞特徵的數據。其次,在細胞特徵寬表的基礎上,通過搭建分類模型進行腫瘤細胞的判斷。
基於預測模型的案例這裡面主要想介紹兩個案例。即通過化學特性判斷和預測紅酒的品質。另外一個是,通過搜索引擎來預測和判斷股價的波動和趨勢。
紅酒品質的判斷如何評鑒紅酒?有經驗的人會說,紅酒最重要的是口感。而口感的好壞,受很多因素的影響,例如年份、產地、氣候、釀造的工藝等等。但是,統計學家並沒有時間去品嘗各種各樣的紅酒,他們覺得通過一些化學屬性特徵就能夠很好地判斷紅酒的品質了。並且,現在很多釀酒企業其實也都這么幹了,通過監測紅酒中化學成分的含量,從而控制紅酒的品質和口感。
那麼,如何判斷鑒紅酒的品質呢?
第一步,收集很多紅酒樣本,整理檢測他們的化學特性,例如酸性、含糖量、氯化物含量、硫含量、酒精度、PH值、密度等等。
第二步,通過分類回歸樹模型進行預測和判斷紅酒的品質和等級。
搜索引擎的搜索量和股價波動一隻南美洲熱帶雨林中的蝴蝶,偶爾扇動了幾下翅膀,可以在兩周以後,引起美國德克薩斯州的一場龍卷風。你在互聯網上的搜索是否會影響公司股價的波動?
很早之前,就已經有文獻證明,互聯網關鍵詞的搜索量(例如流感)會比疾控中心提前1到2周預測出某地區流感的爆發。
同樣,現在也有些學者發現了這樣一種現象,即公司在互聯網中搜索量的變化,會顯著影響公司股價的波動和趨勢,即所謂的投資者注意力理論。該理論認為,公司在搜索引擎中的搜索量,代表了該股票被投資者關注的程度。因此,當一隻股票的搜索頻數增加時,說明投資者對該股票的關注度提升,從而使得該股票更容易被個人投資者購買,進一步地導致股票價格上升,帶來正向的股票收益。這是已經得到無數論文驗證了的。
基於關聯分析的案例:沃爾瑪的啤酒尿布啤酒尿布是一個非常非常古老陳舊的故事。故事是這樣的,沃爾瑪發現一個非常有趣的現象,即把尿布與啤酒這兩種風馬牛不相及的商品擺在一起,能夠大幅增加兩者的銷量。原因在於,美國的婦女通常在家照顧孩子,所以,她們常常會囑咐丈夫在下班回家的路上為孩子買尿布,而丈夫在買尿布的同時又會順手購買自己愛喝的啤酒。沃爾瑪從數據中發現了這種關聯性,因此,將這兩種商品並置,從而大大提高了關聯銷售。
啤酒尿布主要講的是產品之間的關聯性,如果大量的數據表明,消費者購買A商品的同時,也會順帶著購買B產品。那麼A和B之間存在關聯性。在超市中,常常會看到兩個商品的捆綁銷售,很有可能就是關聯分析的結果。
基於聚類分析的案例:零售客戶細分對客戶的細分,還是比較常見的。細分的功能,在於能夠有效的劃分出客戶群體,使得群體內部成員具有相似性,但是群體之間存在差異性。其目的在於識別不同的客戶群體,然後針對不同的客戶群體,精準地進行產品設計和推送,從而節約營銷成本,提高營銷效率。
例如,針對商業銀行中的零售客戶進行細分,基於零售客戶的特徵變數(人口特徵、資產特徵、負債特徵、結算特徵),計算客戶之間的距離。然後,按照距離的遠近,把相似的客戶聚集為一類,從而有效的細分客戶。將全體客戶劃分為諸如,理財偏好者、基金偏好者、活期偏好者、國債偏好者、風險均衡者、渠道偏好者等。
基於異常值分析的案例:支付中的交易欺詐偵測採用支付寶支付時,或者刷信用卡支付時,系統會實時判斷這筆刷卡行為是否屬於盜刷。通過判斷刷卡的時間、地點、商戶名稱、金額、頻率等要素進行判斷。這裡面基本的原理就是尋找異常值。如果您的刷卡被判定為異常,這筆交易可能會被終止。
異常值的判斷,應該是基於一個欺詐規則庫的。可能包含兩類規則,即事件類規則和模型類規則。第一,事件類規則,例如刷卡的時間是否異常(凌晨刷卡)、刷卡的地點是否異常(非經常所在地刷卡)、刷卡的商戶是否異常(被列入黑名單的套現商戶)、刷卡金額是否異常(是否偏離正常均值的三倍標准差)、刷卡頻次是否異常(高頻密集刷卡)。第二,模型類規則,則是通過演算法判定交易是否屬於欺詐。一般通過支付數據、賣家數據、結算數據,構建模型進行分類問題的判斷。
基於協同過濾的案例:電商猜你喜歡和推薦引擎電商中的猜你喜歡,應該是大家最為熟悉的。在京東商城或者亞馬遜購物,總會有「猜你喜歡」、「根據您的瀏覽歷史記錄精心為您推薦」、「購買此商品的顧客同時也購買了商品」、「瀏覽了該商品的顧客最終購買了商品」,這些都是推薦引擎運算的結果。
這裡面,確實很喜歡亞馬遜的推薦,通過「購買該商品的人同時購買了**商品」,常常會發現一些質量比較高、較為受認可的書。一般來說,電商的「猜你喜歡」(即推薦引擎)都是在協同過濾演算法(Collaborative Filter)的基礎上,搭建一套符合自身特點的規則庫。即該演算法會同時考慮其他顧客的選擇和行為,在此基礎上搭建產品相似性矩陣和用戶相似性矩陣。基於此,找出最相似的顧客或最關聯的產品,從而完成產品的推薦。
基於社會網路分析的案例:電信中的種子客戶種子客戶和社會網路,最早出現在電信領域的研究。即,通過人們的通話記錄,就可以勾勒出人們的關系網路。電信領域的網路,一般會分析客戶的影響力和客戶流失、產品擴散的關系。
基於通話記錄,可以構建客戶影響力指標體系。採用的指標,大概包括如下,一度人脈、二度人脈、三度人脈、平均通話頻次、平均通話量等。基於社會影響力,分析的結果表明,高影響力客戶的流失會導致關聯客戶的流失。其次,在產品的擴散上,選擇高影響力客戶作為傳播的起點,很容易推動新套餐的擴散和滲透。
此外,社會網路在銀行(擔保網路)、保險(團伙欺詐)、互聯網(社交互動)中也都有很多的應用和案例。
基於文本分析的案例這裡面主要想介紹兩個案例。一個是類似「掃描王」的APP,直接把紙質文檔掃描成電子文檔。相信很多人都用過,這里准備簡單介紹下原理。另外一個是,江湖上總是傳言紅樓夢的前八十回和後四十回,好像並非都是出自曹雪芹之手,這裡面准備從統計的角度聊聊。
字元識別:掃描王APP手機拍照時會自動識別人臉,還有一些APP,例如掃描王,可以掃描書本,然後把掃描的內容自動轉化為word。這些屬於圖像識別和字元識別(Optical Character Recognition)。圖像識別比較復雜,字元識別理解起來比較容易些。
查找了一些資料,字元識別的大概原理如下,以字元S為例。
第一,把字元圖像縮小到標准像素尺寸,例如12*16。注意,圖像是由像素構成,字元圖像主要包括黑、白兩種像素。
第二,提取字元的特徵向量。如何提取字元的特徵,採用二維直方圖投影。就是把字元(12*16的像素圖)往水平方向和垂直方向上投影。水平方向有12個維度,垂直方向有16個維度。這樣分別計算水平方向上各個像素行中黑色像素的累計數量、垂直方向各個像素列上的黑色像素的累計數量。從而得到水平方向12個維度的特徵向量取值,垂直方向上16個維度的特徵向量取值。這樣就構成了包含28個維度的字元特徵向量。
第三,基於前面的字元特徵向量,通過神經網路學習,從而識別字元和有效分類。
文學著作與統計:紅樓夢歸屬這是非常著名的一個爭論,懸而未決。對於紅樓夢的作者,通常認為前80回合是曹雪芹所著,後四十回合為高鶚所寫。其實主要問題,就是想確定,前80回合和後40回合是否在遣詞造句方面存在顯著差異。
這事讓一群統計學家比較興奮了。有些學者通過統計名詞、動詞、形容詞、副詞、虛詞出現的頻次,以及不同詞性之間的相關系做判斷。有些學者通過虛詞(例如之、其、或、亦、了、的、不、把、別、好),判斷前後文風的差異。有些學者通過場景(花卉、樹木、飲食、醫葯與詩詞)頻次的差異,來做統計判斷。總而言之,主要通過一些指標量化,然後比較指標之間是否存在顯著差異,藉此進行寫作風格的判斷。
以上是小編為大家分享的關於數據挖掘演算法與生活中的應用案例的相關內容,更多信息可以關注環球青藤分享更多干貨
『柒』 如何預測股市走勢
我不是金融專家,不能對具體的金融市場動態進行預測。然而,我可以提供一些建議,幫助你分析銀行股大漲的原因以及未來A股走勢的可能性。
銀行股大漲的原因可能包括以下幾點:
1. 經濟復甦:經濟復甦可能導致銀行貸款業務增加,從而推動銀行股上漲。如果經濟持續增長,銀行股可能會保持強勢。
2. 政策支持:政府可能採取刺激經濟的政策措施,如降低利率、擴大基礎設施投資等。這些政策可能對銀行股產生積極影響。
3. 企業盈利改善:企業盈利的改善可能會推動銀行貸款質量的提高。這可能使銀行股受到投資者的青睞。
4. 股市情緒:市場情緒可能對銀行股產生影響。如果投資者對股市整體信心增強,銀行股可能會受到追捧。
5. 風險偏好:風險偏好的變化可能影響銀行股的表現。如果投資者更傾向於投資風險較低的股票,銀行股可能會受到歡迎。
要預測未來A股走勢,需要關注以下幾個關鍵因素:碼襪
1. 經濟增長:關注全球和國內經濟增長的趨勢,以及可能對A股市場產生影響的政策措施。
2. 貨幣政策:了解央行的貨幣政策,如利率調整、信遲運激貸擴張等,以悄凱評估對A股市場的影響。
3. 市場情緒:關注投資者對股市的信心和風險偏好變化,這可能對股市的短期走勢產生影響。
4. 企業盈利:關註上市公司的盈利狀況,這可能影響市場對股票價值的判斷。
5. 政策因素:政府在金融市場的政策措施,如監管改革、市場准入等,可能對A股市場產生影響。
請注意,以上分析僅供參考,不構成任何投資建議。在進行投資決策時,請務必充分了解相關風險,並尋求專業建議。
『捌』 機器學習有哪些演算法
樸素貝葉斯分類器演算法是最受歡迎的學習方法之一,按照相似性分類,用流行的貝葉斯概率定理來建立機器學習模型,特別是用於疾病預測和文檔分類。 它是基於貝葉斯概率定理的單詞的內容的主觀分析的簡單分類。
什麼時候使用機器學習演算法 - 樸素貝葉余手斯分類器?
(1)如果您有一個中等或大的訓練數據集。
(2)如果實例具有幾個屬性。
(3)給定分類參數,描述實例的屬性應該是條件獨立的。
A.樸素貝葉斯分類器的應用
(1)這些機器學習演算法有助於在不確定性下作出決策,並幫助您改善溝通,因為他們提供了決策情況的可視化表示。
(2)決策樹機器學習演算法幫助數據科學家捕獲這樣的想法:如果採取了不同的決策,那麼情境或模型的操作性質將如何劇烈變化。
(3)決策樹演算法通過允許數據科學家遍歷前向和後向計算路徑來幫助做出最佳決策。
C.何時使用決策樹機器學習演算法
(1)決策樹對錯誤是魯棒的,並且如果訓練數據包含錯誤,則決策樹演算法將最適合於解決這樣的問題。
(2)決策樹最適合於實例由屬性值對表示的問題。
(3)如果訓練數據具有缺失值,則可以使用決策樹,因為它們可以通過查看其他列中的數據來很好地處理丟失的值。
(4)當目標函數具有離散輸出值時,決策樹是最適合的。
D.決策樹的優點
(1)決策樹是非常本能的,可以向任何人輕松解釋。來自非技術背景的人,也可以解釋從決策樹繪制的假設,因為他們是不言自明的。
(2)當使用決策樹機器學習演算法時,數據類型不是約束,因為它們可以處理分類和數值變數。
(3)決策樹機器學習演算法不需要對數據中的線性進行任何假設,因此可以在參數非線性相關的情況下使用。這些機器學習演算法不對分類器結構和空間分布做出任何假設。
(4)這些演算法在數據探索中是有用的。決策樹隱式執行特徵選擇,這在預測分析中非常重要。當決策樹適合於訓練數據集時,在其上分割決策樹的頂部的節點被認為是給定數據集內的重要變數,並且默認情況下完成特徵選擇。
(5)決策樹有助於節省數據准備時間,因為它們對缺失值和異常值不敏感。缺少值不會阻止您拆分構建決策樹的數據。離群值也不會影響決策樹,因為基於分裂范圍內的一些樣本而不是准確的絕對值發生數據分裂。
E.決策樹的缺點
(1)樹中決策的數量越多,任何預期結果的准確性越小。
(2)決策樹機器學習演算法的主要缺點是結果可能基於預期。當實時做出決策時,收益和產生的結果可能與預期或計劃不同。有機會,這可能導致不現實的決策樹導致錯誤的決策。任何不合理的期望可能導致決策樹分析中的重大錯誤和缺陷,因為並不總是可能計劃從決策可能產生的所有可能性。
(3)決策樹不適合連續變數,並導致不穩定性和分類高原。
(4)與其他決策模型相比,決策樹很容易使用,但是創建包含幾個分支的大決策樹是一個復雜和耗時的任務。
(5)決策樹機器學習演算法一次只考慮一個屬性,並且可能不是最適合於決策空間中的實際數據。
(6)具有多個分支的大尺寸決策樹是不可理解的,並且造成若干呈現困難。
F.決策樹機器學習演算法的應用
(1)決策樹是流行的機器學習演算法之一,它在財務中對期權定價有很大的用處。
(2)遙感是基於決策樹的模式識別的應用領域。
(3)銀行使用決策樹演算法按貸款申請人違約付款的概率對其進行分類。
(4)Gerber產品公司,一個流行的嬰兒產品公司,使用決策樹機器學習演算法來決定他們是否應繼續使用塑料PVC(聚氯乙烯)在他們的產品。
(5)Rush大學醫學中心開發了一個名為Guardian的工具,它使用決策樹機器學習演算法來識別有風險的患者和疾病趨勢。
Python語言中的數據科學庫實現決策樹機器學習演算法是 - SciPy和Sci-Kit學習。
R語言中的數據科學庫實現決策樹機器學習演算法是插入符號。
3.7 隨機森林機器學習演算法
讓我們繼續我們在決策樹中使用的同樣的例子,來解釋隨機森林機器學習演算法如何工作。提利昂是您的餐廳偏好的決策樹。然而,提利昂作為一個人並不總是准確地推廣你的餐廳偏好。要獲得更准確的餐廳推薦,你問一對夫婦的朋友,並決定訪問餐廳R,如果大多數人說你會喜歡它。而不是只是問Tyrion,你想問問Jon Snow,Sandor,Bronn和Bran誰投票決定你是否喜歡餐廳R或不。這意味著您已經構建了決策樹的合奏分類器 - 也稱為森林。
你不想讓所有的朋友給你相同的答案 - 所以你提供每個朋友略有不同的數據。你也不確定你的餐廳偏好,是在一個困境。你告訴提利昂你喜歡開頂屋頂餐廳,但也許,只是因為它是在夏天,當你訪問的餐廳,你可能已經喜歡它。在寒冷的冬天,你可能不是餐廳的粉絲。因此,所有的朋友不應該利用你喜歡打開的屋頂餐廳的數據點,以提出他們的建議您的餐廳偏好。
通過為您的朋友提供略微不同的餐廳偏好數據,您可以讓您的朋友在不同時間向您詢問不同的問題。在這種情況下,只是稍微改變你的餐廳偏好,你是注入隨機性在模型級別(不同於決策樹情況下的數據級別的隨機性)。您的朋友群現在形成了您的餐廳偏好的隨機森林。
隨機森林是一種機器學習演算法,它使用裝袋方法來創建一堆隨機數據子集的決策樹。模型在數據集的隨機樣本上進行多次訓練,以從隨機森林演算法中獲得良好的預測性能。在該整體學習方法中,將隨機森林中所有決策樹的輸出結合起來進行最終預測。隨機森林演算法的最終預測通過輪詢每個決策樹的結果或者僅僅通過使用在決策樹中出現最多次的預測來導出。
例如,在上面的例子 - 如果5個朋友決定你會喜歡餐廳R,但只有2個朋友決定你不會喜歡的餐廳,然後最後的預測是,你會喜歡餐廳R多數總是勝利。
A.為什麼使用隨機森林機器學習演算法?
(1)有很多好的開源,在Python和R中可用的演算法的自由實現。
(2)它在缺少數據時保持准確性,並且還能抵抗異常值。
(3)簡單的使用作為基本的隨機森林演算法可以實現只用幾行代碼。
(4)隨機森林機器學習演算法幫助數據科學家節省數據准備時間,因為它們不需要任何輸入准備,並且能夠處理數字,二進制和分類特徵,而無需縮放,變換或修改。
(5)隱式特徵選擇,因為它給出了什麼變數在分類中是重要的估計。
B.使用隨機森林機器學習演算法的優點
(1)與決策樹機器學習演算法不同,過擬合對隨機森林不是一個問題。沒有必要修剪隨機森林。
(2)這些演算法很快,但不是在所有情況下。隨機森林演算法當在具有100個變數的數據集的800MHz機器上運行時,並且50,000個案例在11分鍾內產生100個決策樹。
(3)隨機森林是用於各種分類和回歸任務的最有效和通用的機器學習演算法之一,因為它們對雜訊更加魯棒。
(4)很難建立一個壞的隨機森林。在隨機森林機器學習演算法的實現中,容易確定使用哪些參數,因為它們對用於運行演算法的參數不敏感。一個人可以輕松地建立一個體面的模型沒有太多的調整
(5)隨機森林機器學習演算法可以並行生長。
(6)此演算法在大型資料庫上高效運行。
(7)具有較高的分類精度。
C.使用隨機森林機器學習演算法的缺點
他們可能很容易使用,但從理論上分析它們是很困難的。
隨機森林中大量的決策樹可以減慢演算法進行實時預測。
如果數據由具有不同級別數量的分類變數組成,則演算法會偏好具有更多級別的那些屬性。 在這種情況下,可變重要性分數似乎不可靠。
當使用RandomForest演算法進行回歸任務時,它不會超出訓練數據中響應值的范圍。
D.隨機森林機器學習演算法的應用
(1)隨機森林演算法被銀行用來預測貸款申請人是否可能是高風險。
(2)它們用於汽車工業中以預測機械部件的故障或故障。
(3)這些演算法用於醫療保健行業以預測患者是否可能發展成慢性疾病。
(4)它們還可用於回歸任務,如預測社交媒體份額和績效分數的平均數。
(5)最近,該演算法也已經被用於預測語音識別軟體中的模式並對圖像和文本進行分類。
Python語言中的數據科學庫實現隨機森林機器學習演算法是Sci-Kit學習。
R語言的數據科學庫實現隨機森林機器學習演算法randomForest。