鑒于題主的問題有些寬泛,我想把范圍縮小一些來進(jìn)行解釋?!救斯ぶ悄堋渴且粋€(gè)比較寬泛的概念,目的是讓機(jī)器像人類一樣思考,【機(jī)器學(xué)習(xí)】是“人工智能”的一個(gè)分支,【深度學(xué)習(xí)】是“機(jī)器學(xué)習(xí)”的一種方法,三者之間的關(guān)系類似于下圖。
綜合我個(gè)人的理解,目前機(jī)器學(xué)習(xí)中的各類算法和原理基本能解決大多數(shù)日常所處理的問題。
(一)首要問題:“語言的選擇”
擺在題主面前的首要問題是“入門”,所以我們需要在前人的基礎(chǔ)上進(jìn)行理解和應(yīng)用。在這里我推薦Python,除了Python語法簡(jiǎn)潔靈活以外,目前人工智能或者機(jī)器學(xué)習(xí)庫(kù)在Python語言上最為豐富和完善——是的,沒有之一。
這里我想解釋一下“庫(kù)”的概念,目前語言的一個(gè)趨勢(shì)就是提高工作效率,也即“拿來主義”,別人做好的東西你可以直接拿來用,單這并不是說你什么都不需要做了,而是這只是一個(gè)工具,單是理解如何使用工具就不是一個(gè)輕松的事情。
如果題主想從0開始自己寫機(jī)器學(xué)習(xí)的工具,那么我不推薦,一般來說大多數(shù)人沒有這個(gè)能力,也確實(shí)沒有必要。
1.所謂的“沒有能力”,不是說你真的寫不出來,而是一個(gè)成熟的庫(kù)和包需要長(zhǎng)時(shí)間的調(diào)試和完善,一方面保證寫出來的工具要不出錯(cuò)并且具備很好的效果,另一方面要有方便的使用性;
2.所謂的“沒有必要”,自己費(fèi)心費(fèi)力寫出來的沒有“大牛們”寫得好,運(yùn)行效率快,還是要依賴別人寫的庫(kù),所以還是站在巨人的肩膀上比較好。
(二)“算法的理解”
現(xiàn)在我們步入正題,我們要使用“庫(kù)”就要在理解的基礎(chǔ)上調(diào)用,不同的問題處理要使用不同的算法。
機(jī)器學(xué)習(xí)認(rèn)為常見的問題一般分為三種:
所謂【分類】,舉個(gè)列子,就是人有男女性別之分,回答有正確錯(cuò)誤之分,相貌有美丑之分;所謂【聚類】,你不能判斷一個(gè)東西的具體類別而是說大致更接近什么,通俗來說就是更加模糊的分類,一個(gè)四不像的動(dòng)物從概率來說更像什么;所謂【回歸】,針對(duì)一系列連續(xù)的值,比如明天的天氣是20℃還是21或者30這樣、或者小明數(shù)學(xué)成績(jī)考了60分還是72分。
明白了問題的類型,我們才能選擇特定的算法:針對(duì)【分類】問題,可以選擇KNN算法、決策樹、樸素貝葉斯、支持向量機(jī)、邏輯斯蒂回歸;針對(duì)【聚類】可以使用K-mean算法;針對(duì)【回歸】問題,可以選決策樹、樸素貝葉斯、支持向量機(jī)。(對(duì)的,我沒有寫錯(cuò),決策樹、樸素貝葉斯、支持向量機(jī)既可以分類也可以回歸)值得一提得是,邏輯斯蒂回歸雖然是回歸命名,但卻只能用于分類。
這些都是常見的機(jī)器學(xué)習(xí)算法,也是入門的程序員所需要掌握的,具體的使用還是要看sklearn官方網(wǎng)站的詳細(xì)介紹,這里我就不詳細(xì)解釋了。但要說明的是,算法只是解決問題的方法,數(shù)據(jù)才是關(guān)鍵,如何對(duì)特征維度進(jìn)行處理以及提取有效的特征維度更加重要。
Sklearn庫(kù)網(wǎng)站:http://scikit-learn.org/stable/modules/classes.html
聯(lián)系客服