機(jī)器學(xué)習(xí)—簡介及Python機(jī)器學(xué)習(xí)環(huán)境搭建

作者:趙玉? ? 學(xué)號:15020150031 轉(zhuǎn)載自:https://zhuanlan.zhihu.com/p/29486768

【嵌牛導(dǎo)讀】:機(jī)器學(xué)習(xí)簡介及Python機(jī)器學(xué)習(xí)環(huán)境搭建

【嵌牛鼻子】:機(jī)器學(xué)習(xí)就是研究計算機(jī)如何學(xué)習(xí)和模擬人類的行為,并根據(jù)已學(xué)得的知識對該行為進(jìn)行增強(qiáng)和改進(jìn)。

????機(jī)器學(xué)習(xí),顧名思義,就是研究計算機(jī)如何學(xué)習(xí)和模擬人類的行為,并根據(jù)已學(xué)得的知識對該行為進(jìn)行增強(qiáng)和改進(jìn)。

????舉例來說,假設(shè)郵箱收到了一封新郵件,通常我們可以通過郵件里是否含有廣告、不相關(guān)信息以及亂碼等特征,人為的來判斷這封郵件是否是一封垃圾郵件。

? ? 如上述可知,機(jī)器學(xué)習(xí)模擬人類的行為,所以它同樣依據(jù)這些郵件內(nèi)容的特征來判斷一封郵件是否是垃圾郵件。那么計算機(jī)是如何判斷郵件內(nèi)容里那些是廣告和垃圾信息的呢? 我們知道,在我們剛出生的時候,大家都不知道世間那些事情是好的,那些事情是壞的,都是爸爸媽媽告訴我們說:打人是不對的,幫助他人才是該做的。同理,尚未學(xué)習(xí)的計算機(jī)剛開始也不能獨立思考,為了讓它區(qū)分垃圾郵件和正常郵件,所以我們必須需要告訴它,郵件里的內(nèi)容那些是廣告和垃圾信息,那些是正常的內(nèi)容。這一過程是機(jī)器學(xué)習(xí)的核心過程,通過這一核心過程,計算機(jī)便有了初步的對于郵件垃圾與否的“知識”,正如我們學(xué)了加減乘除后便可以做簡單的運算。

????機(jī)器學(xué)習(xí)的核心過程一般分為包含如下模塊:

訓(xùn)練數(shù)據(jù)集:訓(xùn)練數(shù)據(jù)集是機(jī)器學(xué)習(xí)的“課本”,如郵件訓(xùn)練數(shù)據(jù)集,其中包含了各種各樣的郵件,其中每個郵件都有一個標(biāo)識,用來表示其為正常郵件還是垃圾郵件。典型的數(shù)據(jù)格式如:郵件1,1;郵件2,0,;郵件3,1;其中0表示正常郵件,1表示垃圾郵件,因此可以看出郵件1和3為垃圾郵件,郵件2為正常郵件;

學(xué)習(xí)算法:計算機(jī)通過機(jī)器學(xué)習(xí)算法對訓(xùn)練數(shù)據(jù)集進(jìn)行分析,并建立最終的模型。即通過對“課本”的學(xué)習(xí),建立一套自己的解題方案。如通過對郵件數(shù)據(jù)集的學(xué)習(xí)后,當(dāng)收到新郵件時,通過模型便可判斷該郵件是否是垃圾郵件。模型的最終生成以及其性能的高低依據(jù)選擇的機(jī)器算法而定。

測試模型:通過某些測試數(shù)據(jù)[類別未知]對模型進(jìn)行測試,如輸入多封新郵件測試模型能夠?qū)⑧]件正確分類的效果,若達(dá)不到預(yù)期效果則需要調(diào)整學(xué)習(xí)算法的參數(shù)。

機(jī)器學(xué)習(xí)算法有很多,大致分為監(jiān)督學(xué)習(xí)算法和無監(jiān)督學(xué)習(xí)算法。

監(jiān)督學(xué)習(xí):訓(xùn)練數(shù)據(jù)集的類別已知,如上文提到的郵件訓(xùn)練數(shù)據(jù)集,通過對訓(xùn)練數(shù)據(jù)集的學(xué)習(xí)生成模型。好比面前有一位老師告訴了你題目的方法和答案,,當(dāng)你了解了老師教你的方法時,面對的新的題目便可自行解答。

監(jiān)督學(xué)習(xí)的算法:

分類算法 —— K-近鄰算法、決策樹、樸素貝葉斯算法、Logistic回歸、etc.

預(yù)測算法 —— 局部加權(quán)線性回歸、線性回歸、支持向量、Ridge回歸、Lasso最小回歸系數(shù)估計、etc.

無監(jiān)督學(xué)習(xí):數(shù)據(jù)集的類別未知,如草原上一群未被標(biāo)記的動物,起初不知道這些動物該如何分類,但通過觀察這些動物的特征便可知道,可以將體格壯的分為一類(大型動物),食草的分為一類(食草動物)以及爬行的分為一類(爬行動物)等,因此無監(jiān)督學(xué)習(xí)也是通過對數(shù)據(jù)集的特征進(jìn)行分析,根據(jù)特征相似性對數(shù)據(jù)集進(jìn)行分類。

無監(jiān)督學(xué)習(xí)算法:K-均值、最大期望算法、DBSCAN、Parzen窗設(shè)計、etc.

[上述提到的機(jī)器算法會在后續(xù)中一 一講解]

? 總之,機(jī)器學(xué)習(xí)通過算法對訓(xùn)練數(shù)據(jù)集進(jìn)行學(xué)習(xí),生成最終的模型,并用此模型模擬人類行為對新輸入進(jìn)行判斷。

? 機(jī)器學(xué)習(xí)模型除了可以分辨垃圾郵件外,還可以做很多事情,比如根據(jù)對超市顧客購物清單的學(xué)習(xí)分析,可知買了尿布的顧客會順便買一罐啤酒,因此超市可將尿布和啤酒放在一起從而提高銷量;通過對圖書館借書記錄的分析,可以將相似的書籍推薦給讀者;對購買產(chǎn)品記錄的分析,網(wǎng)站會提示買家該產(chǎn)品的最佳搭配產(chǎn)品或者提示買家其他顧客除了購買該產(chǎn)品還購買了哪些與之搭配的產(chǎn)品;通過對房子的特征及其房價的數(shù)據(jù)分析,可以預(yù)測某種房子的房價;通過對文本的分析對大量的文章進(jìn)行自動分類......。機(jī)器學(xué)習(xí)可以做很多自動化的事情,從而提高效率。

在學(xué)習(xí)機(jī)器學(xué)習(xí)算法的理論及代碼實現(xiàn)前,需要如下幾個前提:

高等數(shù)學(xué)、線性代數(shù)、概率論與數(shù)理統(tǒng)計的基礎(chǔ)(至少了解概念)

編程基礎(chǔ) (Java、C++、Python 等都可作為實現(xiàn)機(jī)器學(xué)習(xí)算法的語言)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [建議:Python,Python包含眾多的科學(xué)計算包,更容易更方便實現(xiàn)其算法]? ? ? ?

Python機(jī)器學(xué)習(xí)環(huán)境搭建

? ? 若未接觸過Python,需要看下Python的基礎(chǔ)語法,不過代碼里面我會寫上詳細(xì)注釋。

? ? 正如安裝Java一樣,我們需要去官方網(wǎng)站下載JDK,Python類似,Python分為2.7和3.6版本,本專欄選擇使用2.7版本。

? ? 安裝好Python后,還需要安裝機(jī)器學(xué)習(xí)所需要的Python科學(xué)計算包 ,例如:numpy+mkl、scipy、matplotlib等。不過這里我們并不安裝原始的Python版本,而是安裝anaconda,它是Python的一個發(fā)行版本,安裝好它后就不用再去下載上述Python包,其本身已經(jīng)包含了,比較方便。

anaconda下載地址:Downloads選擇Python 2.7 version下載

安裝步驟在此略過。

安裝好后打開Anaconda Navigator 如圖:

啟動后如圖所示:

lauch? spyder,spyder是Anaconda下的一個Python集成開發(fā)環(huán)境,正如Java之于Eclipse,.net之于Visual Studio .其他工具后續(xù)再說。

當(dāng)然按照慣例 輸出 hello world

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容