.NET平臺機器學習
閱讀目錄
.NET平臺機器學習資源彙總,有你想要的麼?
接觸機器學習1年多了,由於只會用C#堆程式碼,所以只關注.NET平臺的資源,一邊積累,一邊收集,一邊學習,所以在本站第101篇部落格到來之際,分享給大家。部分用過的 ,會有稍微詳細點的說明,其他沒用過的,也是我關注的,說不定以後會用上。機器學習並不等於大資料或者資料探勘,還有有些區別,有些東西可以用來處理大資料的問題或者資料探勘的問題,他們之間也是有部分想通的,所以這些元件不僅僅可以用於機器學習,也可以用於資料探勘相關的。
按照功能把資源分為3個部分,開源綜合與非綜合類,以及其他網站部落格等資料。都是能夠在.NET平臺使用的。謝謝大家支援,這些元件我日後肯定也會研究其使用,到時候有心得再分享上來。如果有興趣,可以關注本部落格。
本文原文地址:http://www.cnblogs.com/asxinyu/p/4422050.html
1.開源綜合類
1.1 AForge.NET
AForge.NET是一個專門為開發者和研究者基於C#框架設計的,他包括計算機視覺與人工智慧,影象處理,神經網路,遺傳演算法,機器學習,模糊系統,機器人控制等領域。這個框架由一系列的類庫組成。主要包括有:
AForge.Imaging —— 一些日常的影象處理和過濾器
AForge.Vision —— 計算機視覺應用類庫
AForge.Neuro —— 神經網路計算庫AForge.Genetic -進化演算法程式設計庫
AForge.MachineLearning —— 機器學習類庫
AForge.Robotics —— 提供一些機器學習的工具類庫
AForge.Video —— 一系列的視訊處理類庫
AForge.Fuzzy —— 模糊推理系統類庫
AForge.Controls—— 影象,三維,圖表顯示控制元件來自:http://baike.haosou.com/doc/1786119-1888850.html
官方網站:http://www.aforgenet.com/
我個人認為這個是.NET平臺機器學習和資料探勘發展時間最長,最好,最全面的開源.NET元件之一。部落格園有很多園友寫過專門的使用文章。我本人也只是關注,還沒有使用,因為方向和處理的問題不一樣,暫時還沒有實際應用。原始碼,案例等都非常全面。
1.2 Accord.NET Framework
Accord.NET Framework是在AForge.NET基礎上封裝和進一步開發來的。功能也很強大,因為AForge.NET更注重與一些底層和廣度,而Accord.NET Framework更注重與機器學習這個專業,在其基礎上提供了更多統計分析和處理函式,包括影象處理和計算機視覺演算法,所以側重點不同,但都非常有用。
官方網站:http://accord-framework.net/
1.3 Math.NET
不管是機器學習還是資料探勘,都與數學離不開關係,既然是在.NET平臺,那麼這個元件以後你也許用得上。Math.NET是.NET平臺下最全面的數學計算元件之一,基礎功能非常完善。我的部落格有對這個元件的詳細研究:http://www.cnblogs.com/asxinyu/p/4329737.html 。當然更多的功能還得大家自己使用中發掘,畢竟提供了原始碼。Math.NET初衷是開源建立一個穩定並持續維護的先進的基礎數學工具箱,以滿足.NET開發者的日常需求。目前該元件主要分為以下幾個子專案,該元件同時也支援Mono,而且支援的平臺也非常廣泛。Math.NET Numerics是核心功能是數值計算。主要是提供日常科學工程計算相關的演算法,包括一些特殊函式,線性代數,概率論,隨機函式,微積分,插值,最優化等相關計算功能。詳細的介紹和使用可以參考本站的選單“Math.NET”,檢視目錄。
官方網站:http://www.mathdotnet.com/
1.4 Infer.NET
好吧,上面說的那些很強大,強大一方面是說包括的面廣,一方面是程式碼,註釋,資源,案例也很完善。如果說上面那些是大炮,那麼我認為這個Infer.NET就是戰鬥機,零零散散接觸和研究,以及翻譯它的文件程式碼已經有5個月了,時間越久,越感覺到它的火力之強大。我部落格已經發表了2篇翻譯的文件:http://www.cnblogs.com/asxinyu/p/4329742.html,請關注。
Infer.NET是微軟劍橋研究院基於.NET平臺開發的一款機器推理元件,該元件的採用的是Microsoft Research License Agreement 授權,Non-Commercial Use Only.Infer.NET是一個概率圖模型中(graphical models)用於執行貝葉斯推理機(Bayesian inference)的框架。如果對概率圖模型或者貝葉斯推理的意義不瞭解,你可以參考一下相關資原始檔,在Resources and References page頁面。Infer.NET為各種應用程式所需要推理提供了先進的訊息傳遞演算法和統計程式。Infer.NET更關注與概率圖程式設計或者貝葉斯理論的相關應用。這個隨機因素和不確定世界中的很多問題,都可以適用,所以他的強大一方面是專注,另一方面是提供的建模語言。與其他的元件不同,其他元件是演算法級,而Infer.NET是建模級別,附帶了各種通用和常見的推理演算法。可以通過簡單的程式碼來建立模型,按照微軟的話說是MSL建模語言,這也是這個元件讓我肅然起敬的地方,估計也只有微軟的研究人員才會想到這麼幹一勞永逸的事情。
官方網站:http://research.microsoft.com/en-us/um/cambridge/projects/infernet/default.aspx
1.5 numl
另外一個小巧的,包含比較多的機器學習演算法類庫,支援監督式和非監督式學習。支援很多常見的機器學習演算法,文件資源還不錯。包括Cluster,KMeans,PCA,DecisionTree,KNN,NaiveBayes,NeuralNetwork等學習演算法,內容也非常豐富,功能強大,同時也包括一些數值計算的實現。這個元件個人認為沒有以上的那麼複雜,結構小巧合理,程式碼也很優雅。看看下面這段程式碼,很快就可以構建一個決策樹學習器進行預測:
1 var generator = new DecisionTreeGenerator(); 2 generator.Descriptor = Descriptor.Create<Tennis>(); 3 generator.SetHint(false); 4 5 Tennis[] tennis = TennisData.GetData(); 6 7 var learned = Learner.Learn(tennis, 0.80, 1000, generator); 8 9 IModel model = learned.Model; 10 double accuracy = learned.Accuracy; 11 12 Tennis t = new Tennis 13 { 14 Outlook = Outlook.Sunny, 15 Temperature = Temperature.High, 16 Windy = false 17 }; 18 19 Tennis predictedVal = model.Predict(t);
numl的入門案例和文件比較全面,如果本身對演算法比較瞭解,熟悉C#,那入門應該不是問題。並且可以通過元件本身構建和解決更加複雜的問題。
官方網站:http://numl.net/
1.6 Alglib
ALGLIB是一個跨平臺的數值分析和資料處理函式庫,該函式庫包括開源版本和商業版本。它支援多種程式語言,如C++,C#,Pascal,VBA等,可以在多個作業系統平臺上執行,如:Windows,Linux和Solaris。ALGLIB有以下特點:
(1)線性代數(包括矩陣分析);
(2)方程求解(線性和非線性);
(3)插值;
(4)最優化;
(5)快速傅立葉變換;
(6)數值積分;
(7)線性和非線性最小二乘擬合;
(8)常微分方程求解;
(9)特殊函式;
(10)統計(描述統計、假設檢驗);
(11)資料分析(分類、迴歸、神經網路);
2.開源.NET平臺非綜合類
2.1 Adaboost演算法
1.https://github.com/bgorven/Classifier
2.https://github.com/ElmerNing/Adaboost
2.2 Apriori演算法
1.https://github.com/Omar-Salem/Apriori-Algorithm
2.https://github.com/simonesalvo/apriori
2.3 PageRank演算法
https://github.com/archgold/pagerank
2.4 NativeBayes(樸素貝葉斯)演算法
1.https://github.com/Rekin/Naive-Bayes-Classifier
2.https://github.com/ArdaXi/Bayes.NET
3.https://github.com/amrishdeep/Dragon
4.https://github.com/joelmartinez/nBayes
2.5 kmeans演算法
http://visualstudiomagazine.com/articles/2013/12/01/k-means-data-clustering-using-c.aspx
3.其他資源與技術部落格
【資源】108個大資料文件PDF開放下載-整理後打包下載,雖然是大資料的相關資料,主要是PPT等,但也有和機器學習有一點關係,需要的看看;
白話貝葉斯理論及在足球比賽結果預測中的應用和C#實現【附資料】 裡面有貝葉斯相關的論文資料,文章本身對樸素貝葉斯的原理也介紹得非常清楚;
自然語言處理部落格 ,包含的內容非常多,可能理論性有點強 http://www.52nlp.cn/
西北工業大學博導聶飛平部落格:http://www.escience.cn/people/fpnie/index.html
一個機器學習資料探勘的部落格,有不少資源連結:http://www.zhizhihu.com/
http://mlg.eng.cam.ac.uk/mlss09/schedule.htm
一個機器學習資源集中平臺 http://www.kernel-machines.org/software
演算法雜貨鋪——分類演算法之樸素貝葉斯分類(Naive Bayesian classification)
部落格園Bobby0322的部落格:http://www.cnblogs.com/Bobby0322/p/4052495.html 中的商務智慧與資料探勘應用系列文章:
- 《BI那點兒事》資料探勘初探
- 《BI那點兒事》資料探勘的主要方法
- 《BI那點兒事》淺析十三種常用的資料探勘的技術
- 《BI那點兒事》資料探勘與相關領域的關係
- 《BI那點兒事》Microsoft 關聯演算法
- 《BI那點兒事》Microsoft 聚類分析演算法
- 《BI那點兒事》Microsoft 聚類分析演算法——三國人物身份劃分
- 《BI那點兒事》Microsoft 決策樹演算法
- 《BI那點兒事》Microsoft 決策樹演算法——找出三國武將特性分佈,獻給廣大的三國愛好者們
- 《BI那點兒事》Microsoft 線性迴歸演算法
- 《BI那點兒事》Microsoft 邏輯迴歸演算法
- 《BI那點兒事》Microsoft 邏輯迴歸演算法——預測股票的漲跌
- 《BI那點兒事》Microsoft Naive Bayes 演算法
- 《BI那點兒事》Microsoft Naive Bayes 演算法——三國人物身份劃分
- 《BI那點兒事》Microsoft 神經網路演算法
- 《BI那點兒事》Microsoft 順序分析和聚類分析演算法
- 《BI那點兒事》Microsoft 時序演算法
- 《BI那點兒事》Microsoft 時序演算法——驗證神奇的斐波那契數列
- 《BI那點兒事》資料探勘各類演算法——準確性驗證
4.我的100篇部落格之路
從2009年8月1日註冊部落格園開始,已經有5年多的時間了。這是部落格的第100篇正式隨筆文章。在2015年元旦的時候,看著自己的部落格很久沒有更新,只有40多篇文章,然後列出了一個寫作計劃,初期是至少完成高質量的文章50篇左右。而到現在只有4個月,沒想到我幾乎完成了全年的目標。當然發表的50多篇文章中,我認為高質量和有意義的可能只有40篇,但絲毫沒關係,至少還有很多時間。這些文章是對自己經歷和知識的總結,也是一個提高。在這100篇部落格裡程碑到來的時候,我簡單的回顧了一下這100篇文章。
第1篇首日瀏覽量到1000的文章:
XCode使用記錄—使用XCode自動向資料庫插入測試資料(2012-04-25 09:11)
第1篇首日瀏覽量到3000的文章:
擁有自己的程式碼生成器—Newlife.XCode模板編寫教程 (2012-05-11 08:35)
第1篇 上部落格園頭條的文章:
挑戰ORM效能——Newlife.XCode下500萬sqlite資料庫的分頁(2012-08-22 12:22)
第1篇 推薦超過60的文章:
【原創】開源Word讀寫元件DocX介紹與入門 (2013-02-22 10:35) 24
第1篇 推薦超過80的文章:
【5.1送禮】國內第一部Matlab和C#.Net混合程式設計視訊教程【免費】 (2014-04-29 08:02)
第1篇 總瀏覽量超1.6萬的文章:
【吐槽】VS2012的安裝專案只能用InstallShield Limited Edition (2013-09-07 11:20)
在所有的100篇隨筆中,有13篇是目錄和連結彙總,不能算是寫的隨筆,還有9篇文章是剛開始來部落格園的時候,還在學習,技術含量不高。但我也沒刪除,畢竟是一段歷史。加上有2篇關於比特幣和原始碼的文章,準確的說不是我寫的,大部分是@大石頭的內容,還有2篇資源和百度吐槽是很隨意臨時寫的,根本沒打算髮表在首頁,只是做一個記錄。所以實際比較有技術一點的文章或者心得數量是73篇。這73篇文章中:
在個人認為還不錯的文章中有至少15 篇上了部落格園頭條(包括“最多推薦”和“最多評論”以及“編輯推薦”)
1.白話貝葉斯理論及在足球比賽結果預測中的應用和C#實現【附資料】
2.你用過這種奇葩的C#註釋嗎?如何看待 (2015-04-17 10:04)
3.【原創】C#玩高頻數字彩快3的一點體會 (2015-04-11 09:03)
4.【踩坑經歷】一次Asp.NET小網站部署踩坑和解決經歷 (2015-04-01 06:10)
5.【分享】部落格美化(4)為部落格新增一個智慧的文章推薦外掛 (2015-03-24 07:55)
6.【原創】Newlife.XCode的常見功能使用(一)查詢與資料初始化 (2015-01-26 08:52)
7.【原創】開源Math.NET基礎數學類庫使用(13)C#實現其他隨機數生成器 (2015-03-18 08:32)
8.【反傳銷】傳銷故事總結—如何儘可能保護自身和家人安全 (2015-03-09 07:37)
9.【反傳銷】春節一個短暫誤入傳銷和脫身的真實故事以及對技術的思考 (2015-03-03 06:10)
10.App亂世,3721離我們有多遠 (2015-02-10 09:24)
11.【原創】開源Word讀寫元件DocX介紹與入門 (2013-02-22 10:35)
12.【原創】C#開源輕量級物件資料庫NDatabase介紹 (2013-02-20 09:35)
13.【原創】.NET開源壓縮元件介紹與入門 (2013-03-05 07:59)
14.【5.1送禮】國內第一部Matlab和C#.Net混合程式設計視訊教程【免費】 (2014-04-29 08:02)
另外還有一篇文章被部落格園作為編輯推薦文章:
15.【原創】Matlab.NET混合程式設計技巧之直接呼叫Matlab內建函式
總的來說,文章是非常高效和得到大家的認可的,雖然技術含量不是特別高階,但可能基礎的技術更多的能引起共鳴吧。我想說的是,每一篇文章都是經過很用心的編輯和寫出來的,結果也是非常理想的,得到了很多人的支援和理解,所以才有瞭如此高效的訪問量和推薦以及評論。
如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎各位轉載,但是未經作者本人同意,轉載文章之後必須在文章頁面明顯位置給出作者和原文連線,否則保留追究法律責任的權利。