介紹
在過去的幾年裡,人們對機器學習重新產生了興趣。 這種復興似乎是由強大的基礎因素推動的 - 全球感測器正在產生大量資料,低廉的儲存成本和最低的計算成本!
然而,並非每個人都瞭解機器學習是什麼。這裡有一些例子:
機器學習是什麼?它與大資料和業務分析有何不同?
https://discuss.analyticsvidhya.com/t/what-is-machine-learning-and-how-is-it-different-from-big-data-and-business-analytics/306
機器學習,資料分析,資料探勘,資料科學和AI之間有什麼區別?
https://discuss.analyticsvidhya.com/t/what-is-the-difference-between-machine-learning-data-analysis-data-mining-data-science-and-ai/572
對於我們最近在Facebook頁面上流傳的話題,這裡有一點有趣的(但卻是千真萬確的)地方。
Facebook頁面
https://www.facebook.com/AnalyticsVidhya/
鑑於對該主題的混淆程度,我們想要寫一系列精彩的關於機器學習的介紹性文章。這個想法的目的是消除所有在過去可能嚇到你的術語,並創造一些可以被5歲的孩子讀懂的東西(好吧......對不起,可能是高中畢業)!
那麼究竟什麼是機器學習呢?我的小實驗……
為了確保我不會高估(或低估)目標受眾的能力,我找到了10個對該領域完全陌生的人。他們之前都沒有聽說過機器學習(是的,有這樣的人!)。這是他們所說的:
不知道,可能是從機器中學習?
讓機器學習一些東西,也就是程式設計機器軟體
在電腦的幫助下學習
通過線上課程學習(!!)
這真有趣!對於這個解釋機器學習的完美實驗小組, 我開始是這樣向這些人解釋的:
機器學習是指以最智慧的方式(通過開發演算法)處理大量資料以獲得可操作的見解的技術。
這個時候,他們看著我,好像我在火星人面前說了幾句話!所以,我停下來,然後反過來問他們一個問題,讓他們可以更深入地瞭解:
KJ:你覺得在谷歌上搜尋時會發生什麼?
組員:谷歌顯示與該搜尋相關的最相關的web頁面。
KJ:很好!但是究竟發生了什麼,使得谷歌可以向你顯示這些相關的頁面呢?
這一次,他們似乎想得更多了。這時,人群中有人說話了。
組員:谷歌檢視使用者過去的點選量,以瞭解哪些頁面與這些搜尋更相關,然後在搜尋結果頂部給出這些結果。
這是一個更好的嘗試。這時候,我必須控制自己的衝動去講出谷歌做到這一點的方法比這個簡單的概念要聰明得多。但是,我想我有了一個很好的契機來解釋機器學習。所以我繼續說:
KJ:好的,聽起來是個好方法。但是,谷歌會定期處理多少次搜尋以及哪些型別的搜尋?
組員:一定是一個很大的數字 – 每年可能是一萬一次搜尋。
KJ:那麼,你認為谷歌如何能夠如此準確地滿足如此多的請求呢?你是否認為有人坐在谷歌的辦公室裡,不斷地決定哪些搜尋結果是相關的,哪些不是?
組員:雖然沒有認真想過,但是不是這樣的。這聽起來是人類不可能做到的。
KJ:你是對的。這就是機器學習發揮作用的地方。機器學習是一組技術,有助於以最智慧的方式處理大量資料(通過開發演算法或一組邏輯規則)來獲得可操作的見解(在這種情況下為使用者提供搜尋)。
組員們按照常理的點頭, 看起來像完成了任務……耶!但是等等……
現在的常見問題 - 機器學習與X有什麼不同?
你開始閱讀有關機器學習材料的那一刻,你會看到各種火箭高速轟擊你。 這些火箭就是業內經常使用的術語。 比如:人工智慧,深度學習,資料探勘和統計。
為了讓你清楚地理解,我已經以簡單的方式解釋了以下這些術語。 你還將瞭解這些術語在機器學習環境中的重要性:
X = 人工智慧(Artificial Intelligence – AI):
它是指對一臺計算機(機器)進行程式設計以使其變得理性的程式。啊!理性是什麼?理性是做出決定的基礎。
我提到“理性”而不是智慧(正如預期的那樣),因為我們人類傾向於做出高度合理和可行的決定,而不是明顯的聰明的決定。這是因為所有智慧的決策不一定都是理性和可行的(我的假設)。因此,使用人工智慧的核心動機是實現計算機(機器)以一種時髦的方式來代替人類的指導,而不是愚蠢的指導!
人工智慧可能包括一些來檢查程式中的某些引數是否正常工作的程式。例如,如果引數“X”超過某個閾值,機器可能會發出警報,而該閾值反過來又可能影響相關過程的結果。
人工智慧在機器學習中的應用
機器學習是人工智慧的一個子集,機器經過訓練可以從中學習過去的經驗。過去的經驗是通過收集的資料發展起來的。然後結合樸素貝葉斯(Naïve Bayes)、支援向量機(SVM)等演算法給出最終結果。
X =統計:
在這個高階階段,我假設你已經瞭解了統計學。如果你沒有,這裡有一個快速的定義,統計學是數學的一個分支,它利用資料,或者是整個群體的資料,或者是從群體中抽取的一個樣本,來進行分析並給出推論。使用的統計技術有迴歸、方差、標準差、條件概率等。要了解此主題,請閱讀“如何使用統計資料理解人口分佈”。
如何使用統計資料理解人口分佈
https://www.analyticsvidhya.com/blog/2014/07/statistics/
統計學在機器學習中的應用
讓我們明白這一點。假設,我需要將收件箱中的郵件分為兩類:“垃圾郵件”和“重要郵件”。為了識別垃圾郵件,我可以使用一種稱為樸素貝葉斯(Naive Bayes)的機器學習演算法,它將檢查過去垃圾郵件的頻率,從而將新郵件識別為垃圾郵件。樸素貝葉斯使用統計技術貝葉斯定理(通常稱為條件概率)。因此,我們可以說機器學習演算法使用統計概念來執行機器學習。
附加資訊:機器學習和統計模型之間的主要區別來自它們的發源地。機器學習起源於電腦科學系,而統計建模則起源於數學系。此外,任何統計模型都假定有許多分佈,而機器學習演算法通常不知道所有屬性的分佈。
X =深度學習:
深度學習是與機器學習演算法(人工神經網路,ANN)相聯絡的,它利用人腦的概念來促進任意函式的建模。神經網路需要大量的資料,當同時對多個輸出進行建模時,該演算法具有很高的靈活性。ANN是一個更加複雜的話題,我們可以在另一篇文章中對它進行公正的討論。
X =資料探勘:
在我最初做分析師的幾天裡,我總是把機器學習和資料探勘這兩個術語搞混。但是,後來我瞭解到,資料探勘處理的是搜尋特定資訊。機器學習只專注於完成一項特定的任務。讓我舉個幫助我記住這個區別的例子:教別人跳舞是機器學習;使用某人來尋找城市中最好的舞蹈中心是資料探勘。簡單!
另請閱讀:線上機器學習入門
https://www.analyticsvidhya.com/blog/2015/01/introduction-online-machine-learning-simplified-2/
但是,我們究竟如何教機器呢?
教學機器涉及到結構化過程,在這個過程中,每個階段都構建一個更好的機器版本。簡單來講,教學機器的過程可以分為三個部分:
我將在以後的文章中詳細介紹這三個步驟。到目前為止,你應該明白,這三個步驟確保機器的整體學習以同等重要的方式執行給定的任務。機器的成功取決於兩個因素:
抽象資料的泛化效果如何。
機器如何將其學習應用到預測未來行動的實際應用中。
另請閱讀: 瞭解Scikit-Learn - Python中的機器學習工具
https://www.analyticsvidhya.com/blog/2015/01/scikit-learn-python-machine-learning-tool/
機器學習的步驟是什麼?
執行機器學習任務有5個基本步驟:
收集資料:無論是來自excel, access, text files等檔案的原始資料,這一步(收集過去的資料)是未來學習的基礎。相關資料的種類、密度和數量越大,機器的學習前景就越好。
準備資料:任何分析過程都依賴於所使用資料的質量。我們需要花時間來確定資料的質量,然後採取措施來解決缺失資料和異常值的處理等問題。探索性分析可能是研究資料細微差別的一種方法,從而迅速提高資料的營養含量。
訓練模型:這一步包括選擇合適的演算法並以模型的形式表示資料。清洗後的資料分為訓練和測試兩部分(比例視前提而定)。第一部分(訓練資料)用於開發模型。第二部分(測試資料),用作參考。
評估模型:為了測試準確性,使用了資料的第二部分(holdout / test data)。這一步根據結果確定演算法選擇的準確度。檢驗模型準確性的更好的測試方法是檢視其在模型構建過程中根本沒有用到的資料上的效能。
提高效能:這一步可能包括選擇一個完全不同的模型,或者引入更多的變數來提高效率。這就是為什麼需要花費大量的時間來收集和準備資料。
無論是什麼模型,這5個步驟都可以用來構造技術,當我們討論演算法時,你將發現這5個步驟是如何出現在每個模型中的!
另請閱讀:通過機器學習獲得智慧——Ada Boost與Gradient Boost
https://www.analyticsvidhya.com/blog/2015/05/boosting-algorithms-simplified/
機器學習演算法有哪些型別?
監督學習/預測模型:
顧名思義,預測模型是根據歷史資料預測未來的結果。預測模型通常從一開始就被給出了明確的指示,比如需要學習什麼以及如何學習。這類學習演算法被稱為監督學習。
例如:當營銷公司試圖找出哪些客戶可能會流失時,就會使用監督學習。我們還可以用它來預測地震、龍捲風等危險事件發生的可能性,以確定總保險價值。使用的演算法有:最近鄰演算法、樸素貝葉斯演算法、決策樹演算法、迴歸演算法等。
無監督學習/描述性模型:
它用於訓練描述模型,其中沒有設定目標,也沒有一個特性比其他特性更重要。無監督學習的情況可能是:零售商希望找出哪些產品的組合,顧客往往會更頻繁地購買。此外,在製藥行業,無監督學習可以用來預測糖尿病的併發症。這裡使用的演算法示例是:K-均值聚類演算法。
強化學習(RL):
它是機器學習的一個例子,在這個例子中,機器被訓練來根據業務需求做出特定的決策,其唯一的座右銘是最大化效率(效能)。強化學習所涉及的思想是:機器/軟體代理根據其所處的環境不斷地訓練自己,並應用其豐富的知識來解決業務問題。這種持續的學習過程確保了更少的人類專業知識的參與,從而節省了大量的時間!
RL演算法的一個例子是馬爾可夫決策過程。
重要提示:監督學習和強化學習之間有細微的區別。強化學習本質上是通過與環境的互動來學習。強化學習代理從其過去的經驗中學習,而不是從其不斷的嘗試和錯誤學習過程中學習,相反監督學習中由外部監管提供示例。
自動駕駛汽車就是一個很好的例子。自動駕駛汽車使用強化學習來不斷地做出決定——走哪條路?開到什麼速度?這些問題都是在與環境互動後決定的。監督學習的一個簡單表現就是預測計程車從一個地方到另一個地方的車費。
機器學習有哪些應用?
瞭解機器學習的應用是很有趣的。谷歌和Facebook廣泛使用機器學習向相關使用者推送各自的廣告。以下是一些你應該知道的應用:
銀行與金融服務:機器學習可以用來預測那些可能無法償還貸款或信用卡賬單的客戶。這一點至關重要,因為機器學習將幫助銀行識別哪些客戶可以獲得貸款和信用卡。
醫療保健:用於根據患者的症狀診斷致命疾病(如癌症),並將其與過去同類患者的資料進行統計。
零售:它是用來識別哪些產品賣得更頻繁(快速移動),哪些產品賣得慢,幫助零售商決定在貨架上引入或撤下哪些產品。此外,機器學習演算法可以用來找出哪兩種/三種或更多的產品一起銷售。這樣做是為了設計客戶忠誠度計劃,從而幫助零售商發展和維護忠誠的客戶。
這些例子只是冰山一角。機器學習在各個領域都有廣泛的應用。您可以檢視一些Kaggle問題來獲得更多的瞭解。上面提到的例子很容易理解,並且至少讓我們領略了機器學習的無所不能。
尾記
在本文中,我們首先對機器學習有了基本的瞭解。我們還研究了它與其他幾個術語是如何混淆的。我們還介紹了教機器的過程,機器學習中使用的基本步驟,機器學習中使用的演算法,以及機器學習的應用。
我希望本文能幫助你瞭解機器學習的基礎知識。我們很想聽聽你的意見。你覺得有用嗎?機器學習的哪些方面最讓你困惑?請通過下面的評論發表你的想法。
原文標題:
Machine Learning basics for a newbie
原文連結:
https://www.analyticsvidhya.com/blog/2015/06/machine-learning-basics/?utm_source=11stepsBItoDSarticle&utm_medium=blog