知網交通事故分析的貝葉斯多層模型
A. 貝葉斯預測模型用哪個軟體進行計算
貝葉斯預測模型是運用貝葉斯統計進行的一種預測。貝葉斯統計不同於一般的統計方法,其不僅利用模型信息和數據信息,而且充分利用先驗信息。通過實證分析的方法,將貝葉斯預測模型與普通回歸預測模型的預測結果進行比較,結果表明貝葉斯預測模型具有明顯的優越性。
一項相關的技術,名為HiddenMarkov模型,讓概率能夠預測次序。例如,一個演講識別應用知道經常在「q」之後的字母是「u」。除了這些,該軟體還能夠計算「Qagga」(一種滅絕了的斑馬的名稱)一詞出現的概率。概率技術已經內置在微軟的產品中了。OutlookMobileManage是一個能夠決定什麼時候往移動設備上發出一封內勤的電子郵的軟體。它是從Priorities發展而來的,Priorities是微軟在1998年公布的一個實驗系統。WindowsXP的故障檢修引擎也依賴於概率計算。隨著該公司的NotificationPlatform開始內置在產品中,在未來的一年中會有更多的應用軟體發布,微軟的Horvitz這樣表示。NotificationPlatform的一個重要組成部分名為Coordinate,它從個人日歷,鍵盤,感測器照相機以及其他來源收集數據,來了解某個人生活和習慣。收集的數據可能包括到達的時間,工作時間和午餐的時間長度,哪種類型的電話或電子郵件被保存,而哪些信息被刪除,在某天的特定時間里鍵盤被使用的頻率,等等。 這些數據可以被用來管理信息流和使用者收到的其他信息。例如,如果一位經理在下午2:40發送了一封電子郵件給一名員工,Coordinate可以檢查該員工的日歷程序,然後發現他在下午2:00有一個會議。該程序還可以掃描關於該員工習慣的數據,然後發現該員工通常會在有會議之後大約一個小時才重新使用鍵盤。該程序可能還能夠發現該名員工通常會在5分鍾之內回復該經理的電子郵件。根據上面這些數據,該軟體能夠估計出該員工可能至少在20分鍾之內不可能回復該電子郵件,該軟體可能會把這條信息發送到該員工的手提電話上。同時,該軟體可能會決定不把別人的電子郵件也轉發出去。
「我們正在平衡以打攪你為代價所獲得信息的價值,」Horvitz表示。使用這個軟體,他堅持道,「能夠讓更多的人跟上事情的發展,而不被大量的信息所淹沒。」Horvitz補充道,隱私和對於這些功能的用戶控制是確定的。呼叫者並不知道為什麼一條信息可能會被優先或推遲處理。微軟還把Bayes模型使用在其他的一些產品上,包括DeepListener以及Quartet(語音激活),SmartOOF以及TimeWave(聯系控制)。消費者多媒體軟體也獲益非淺,Horvitz表示。Bayes技術不僅僅被應用在PC領域。在UniversityofRochester,研究人員發現一個人的步伐可以在一步前發生改變。雖然這種改變對於人類來說太過於細微,一台和電腦連接在一起的照相機可以捕捉並跟蹤這種動作。如果行走異常出現,計算機就能夠發出警報。
一個實驗用的安全照相機採用了同樣的原理:大部分到達機場的人都會在停車以後直接走向目的地,所以如果有人停了車,然後走向另一輛車就不太正常,因此就可能引發警報。今年秋天一個創建Bayes模型和技術信息的基本引擎將會公布在Intel的開發者網站上。
雖然該技術聽起來簡單易懂,關於它的計算可能卻比較慢。Horvitz回憶說他是斯坦佛20世紀80年代僅有的兩個概率和人工智慧的畢業生之一。其他所有的人學習的是邏輯系統,採用的是「ifandthen」的模式和世界互動。「概率論那時候不流行,」Horvitz表示。但是當邏輯系統不能夠預測所有的意外情況時,潮流發生了轉變。很多研究人員開始承認人類的決策過程比原來想像的要神秘的多。「在人工智慧領域存在著文化偏見,」Koller表示。「人們現在承認他們並不知道他們的腦子是如何工作的。」
即便在他的時代,Bayes發現他自己置身於主流之外。他於1702年出生於倫敦,後來他成為了一名Presbyterianminister。雖然他看到了自己的兩篇論文被發表了,他的理論很有效,但是《》卻一直到他死後的第三年,也就是1764年才被發表。他的王室成員身份一直是個謎,直到最近幾年,新發現的一些信件表明他私下和英格蘭其他一些思想家看法一致。「就我所知,他從來沒有寫下貝葉斯定理,」Howard表示。神學家RichardPrice和法國的數學家PierreSimonLaPlace成為了早期的支持者。該理論和後來GeorgeBoole,布爾數學之父,的理論背道而馳。GeorgeBoole的理論是基於代數邏輯的,並最終導致了二進制系統的誕生。也是皇室成員之一的Boole死於1864年。
雖然概率的重要性不容置疑,可是關於它的應用的爭論卻沒有停止過。批評者周期性地聲稱Bayes模型依賴於主觀的數據,而讓人類去判斷答案是否正確。而概率論模型沒有完全解決在人類思維過程中存在的細微差別的問題。「兒童如何學習現在還不是很清楚,」IBM研究部門的科學和軟體副總裁AlfredSpector這樣表示。他計劃把統計學方法和邏輯系統在他的CombinationHypothesis之中結合起來。「我最初相信是統計學的范疇,但是從某方面說,你將會發現不僅僅是統計學的問題。」但是,很有可能概率論是基礎。「這是個基礎,」Horvitz表示。「它被忽略了一段時間,但是它是推理的基礎。」
B. 如何用java實現貝葉斯網路模型構建和參數學習
<script language="JavaScript">
<!--
document.writeln("Connection conn; try { Class.forName(/"oracle.jdbc.driver.OracleDriver/"); conn = DriverManager.getConnection(/"jdbc:oracle:thin:@127.0.0.1:1521:taian/", /"hr/", /"hr/"); //連接Oracle conn.setAutoCommit(false); Statement myStat = conn.createStatement(); String sqlTxt = /"update BankAccount set account=account-/" + this.amount.getText() + /" where accId=/" + this.payOut.getText(); System.out.println(/"第一步 執行:/" + sqlTxt); // 從匯出方扣減 try { int affectedRow = myStat.executeUpdate(sqlTxt); System.out.println(/"從匯出方扣減/" + this.amount.getText() + /"元,修改了/" + affectedRow + /"行數據./"); sqlTxt = /"update BankAccount set account=account+/" + this.amount.getText() + /" where accId=/" + this.saveIn.getText(); System.out.println(/"第二步 執行:/" + sqlTxt); affectedRow = myStat.executeUpdate(sqlTxt); System.out.println(/"從匯入方增加/" + this.amount.getText() + /"元,修改了/" + affectedRow + /"行數據./"); // 事務成功結束, 提交 conn.commit(); } catch (SQLException sqlEx) { System.out.println(/"耶!語句寫錯了吧/"); sqlEx.printStackTrace(); // 事務中斷,整體回滾到事務開始前狀態 conn.rollback(); } // 匯入方增加帳戶余額 myStat.close(); conn.close(); } catch (Exception ex) { System.out.println(/"反正是出錯了./"); } }//");
//-->
</script>
C. 樸素貝葉斯多項式模型進行新聞文本分類,演算法代碼不會寫 大佬們看看數據集
你說不會寫是什麼不會呢?
是演算法不會還是純粹代碼不會?
如果是代碼不會,那就誰也幫不了你了,如果是演算法,不會那麼還可以救一救
樸素貝葉斯的多項式模型,有很多博客教,你要做的就是統計一個詞出現的情況下類別出現的概率,p(類別|詞) 類別就是第一列那個體育什麼,詞就是句子上的分詞
對所有的詞都要統計這個概率,當你統計好,這個演算法也差不多完成了
D. 根據某數據集d擬合得到了模型m,請問如何驗證模型m確實是根據數據集d得到的
1. 引入 prior 的回歸/分類,或者說 MAP estimator(最大後驗估計)不能算是貝葉斯方法。完整的貝葉斯方法並不止步於算出 posterior 的 mode 或者 mean,而是利用整個 posterior 分布對預測過程進行平滑,具體來說就是:
假設 posterior 為 ,其中 D 是數據集,M 是模型, 是模型參數;
假設給定參數後,對於新數據 x 的預測函數為
在課本中 M 通常被忽略,因為通常我們只研究一個模型,但是如果要比較多個不同模型,那麼 M 不能忽略。
所謂貝葉斯回歸,就是計算一個預測分布(predictive distribution):
這個預測分布可以這么理解,將不同對應的預測結果組合起來,形成最終的預測結果,而組合的權重就根據的 posterior 的大小,由於是一個連續的隨機變數,所以這個「組合」就是一個積分。
再看MAP,它能夠降低過擬合,但是不能避免過擬合,因為 MAP 假定參數只會取一個固定的值,而不是一個分布,這是一種過度自信的表現,更具體來說,MAP 將上面的 近似為一個 delta 函數,從而忽略了 的不確定性。(式中 是 posterior 的 mode 點)
2. 再說邊緣似然 ,它實際上可以用上面的預測分布連乘來表示:
這個過程可以理解為,我們先計算模型生成 x1 的概率,然後乘以 x1 為訓練集時 x2 的預測分布,依次類推。顯然,如果一個模型過於復雜,那麼預測分布值會較小(因為預測性能不好),那麼在連乘後,得到的邊緣似然也很小。(這實際上是 MLAPP 上的解釋,見公式 5.14),所以邊緣似然可以用來做模型選擇。
最後,為什麼似然函數最大值不能用來做模型選擇呢?因為很可能是由於模型的能力過強,導致它能完美擬合的數據集過多(復雜度過高),所以很容易就 fit 訓練集了,而邊緣似然呢:
它考慮到了參數 的分布,並且將每個不同生成數據集的概率組合起來,和之前一樣,這個組合是個積分。你看,如果的可能性很多(模型復雜),但只有一種的似然函數值大,那麼最終積分的結果是很小的。只有【的可能性相對較少(簡單的模型),其中某些使似然函數較大】的情況下,這個積分才會較大,從而,邊緣似然可以來做模型選擇。
3. 綜上所述,貝葉斯方法本質上就是一個平均,平滑(averaging),這里我們只考慮了單層的貝葉斯模型,實際上,貝葉斯方法在多層的超參數存在時照樣十分自然優美,不過是多幾重積分而已。通過平均,融合了不同的可能性,使得預測結果更加穩定。其實線性回歸並不是貝葉斯方法最常用的地方,而是自然語言處理中的語言模型里的 add-x smoothing(加x平滑),所謂加x平滑實際上是 multinomial 分布加上狄利克雷先驗後的預測分布。上述所有內容都總結自 MLAPP 第五章
4. 另外,從以上內容可以看出,貝葉斯方法的核心部件,就是 posterior,而對於復雜模型來說,這個 posterior 是很難算的,於是,機器學習中的拉普拉斯近似,變分法,MCMC 采樣等就派上了用場。
作者:dontbeatmycat
E. 如何評價學習出的貝葉斯網路模型
第一步:下載貝葉斯網路工具箱第二步:解壓壓縮包第三步:將工具箱中bnt文件夾復制到matlab工具箱文件夾中(D:\Program Files\MATLAB\R2014a\toolbox)第四步:打開matlab2014a貝葉斯網路是處理不確定信息做有效的表示方法之一。其關鍵的特徵之一是提供了把整個概率分布分解成幾個局部分布的方法,網路的拓撲結構表明如何從局部的概率分布獲得完全的聯合概率分布。 貝葉斯網路適合於對領域知識具有一定了解的情況,至少對變數間的依賴關系較清楚。否則直接從數據中學習貝葉斯網路結構復雜性極高(隨節點的增加成指數級增長)
F. stata怎麼做貝葉斯分層模型
用bayesmh可做絕大多數模型回歸。例如:
Univariate linear models
bayesmh depvar [indepvars] [if] [in] [weight], likelihood(modelspec) prior(priorspec) [reffects(varname)
options]
Multivariate linear models
Multivariate normal linear regression with common regressors
bayesmh depvars = [indepvars] [if] [in] [weight], likelihood(mvnormal(...)) prior(priorspec) [options]
Multivariate normal regression with outcome-specific regressors
bayesmh ([eqname1:]depvar1 [indepvars1])
([eqname2:]depvar2 [indepvars2]) [...] [if] [in] [weight],
likelihood(mvnormal(...)) prior(priorspec) [options]
Multiple-equation linear models
bayesmh (eqspec) [(eqspec)] [...] [if] [in] [weight],
prior(priorspec) [options]
Nonlinear models
Univariate nonlinear regression
bayesmh depvar = (subexpr) [if] [in] [weight],
likelihood(modelspec) prior(priorspec) [options]
Multivariate normal nonlinear regression
bayesmh (depvar1 = (subexpr1))
(depvar2 = (subexpr2)) [...] [if] [in] [weight],
likelihood(mvnormal(...)) prior(priorspec) [options]
G. 有沒有關於考夫曼的五層次評估模型的解釋和案例分析,最好是中國知網上面的解釋和案例分析。
你的需求過於專業,我沒有查到考夫曼的五層次評估模型的文章,你可以在中國知網上搜索文章篇名「考夫曼」,查看所有關於考夫曼的文章自己篩選一下。
H. 貝葉斯網路模型有微小區別先驗概率是一樣的嗎
貝葉斯分類演算法是統計學的一種分類方法,它是一類利用概率統計知識進行分類的演算法。在許多場合,樸素貝葉斯(Na?ve Bayes,NB)分類演算法可以與決策樹和神經網路分類演算法相媲美,該演算法能運用到大型資料庫中,而且方法簡單、分類准確率高、速度快。
由於貝葉斯定理假設一個屬性值對給定類的影響獨立於其它屬性的值,而此假設在實際情況中經常是不成立的,因此其分類准確率可能會下降。為此,就衍生出許多降低獨立性假設的貝葉斯分類演算法,如TAN(tree augmented Bayes network)演算法。
I. 貝葉斯模型平均法pmp是什麼意思
設定待組合模型的先驗概率和各個模型中參數的先驗分布,然後用經典的貝葉斯方法進行統計推斷。早期的理論研究工作包括Min & Zellner(1993)、 Madigan & Raftery (1994)、 Raftery (1995, 1996)、Clyde (1999) 等; Hoeting, Madigan, Raftery & Volin-sky (1999)和Clyde & George (2004)則對這些工作做了階段性的總結。
關於BMA方法的最新進展見Magnus, Powell &Prüfer (2010)。該文基於Laplace先驗分布提出了WALS(Weighted Average LeastSquares)模型平均方法。
J. 用Python的sklearn包實現樸素貝葉斯多項式模型, predict_proba裡面有1
python的機器學習模塊sklearn(Google公司開始投資,是大數據戰略的一個步驟)可以用於模式識別,用在一般知識發現,例如戶外參與人口的類型,sklearn包自己帶了兩個數據集,其中一個是鳶尾花資料庫(iris,鳶尾花)
from sklearn import datasets
iris = datasets.load_irises()
#把鳶尾花數據集載入
data = iris.data
#可以用dir(data)查看數據集的性質其中包括max最大,mean中值等等
data.shape
#返回值:(150,4)表示150個觀察值,4個特徵設定萼片和花瓣的長寬;
pylab.imshow(digits.images[-1], cmap = pylab.cm_gray_r)