小白入门机器学习必备:编程语言环境介绍及搭建
導讀:工欲善其事,必先利其器,機器學習也不例外。算法原理理解得再清楚,最終也需要通過編寫代碼來真正實現功能和解決問題。
本文將介紹當前機器學習主流的編程語言環境,當前機器學習使用最多的編程語言是Python,在業界口碑一直不錯的Python語言借著機器學習的東風一下躋身編程語言熱門榜的首位。
本文還將介紹Python語言下機器學習相關的支持庫,包括科學計算支持庫Numpy、機器學習庫Scikit-Learn和數據處理庫 Pandas。想要在實際工作中使用機器學習解決具體問題時,使用這些支持庫將大大提升效率。
作者:莫凡
來源:大數據DT(ID:hzdashuju)
01 常用環境
一般來說,算法理論的實踐方式有兩種,一種是自己動手將算法用代碼都實現一遍,另一種則是充分利用工具的便利性,快速了解掌握現有資源后,隨即開始著手解決現實問題。
對于要不要重復造輪子的爭論,我想是很難有決斷的,兩種方法各有利弊,這里我們選用第二種,這也貫徹了本文的宗旨:不是為了學習知識而制造知識,而是為了解決問題去學習知識。
機器學習經過這幾年的高速發展,已經積累了非常豐富的開放資源,通過充分利用這些資源,哪怕此前你對這個領域不了解,也能快速掌握并著手解決實際問題。
首先是編程語言,我們選擇Python。在前些年,Python和R語言在機器學習領域保持著雙雄并立的局面,大致可以認為工業界偏愛Python而學術界偏愛R,但隨著技術發展,特別是這幾年深度學習所需的支持庫毫無例外地都選擇了用Python實現之后,Python語言已經成為機器學習領域毫無疑問的“老大”。
由于機器學習的火熱,Python甚至擁有了與傳統編程語言C和Java一較高下的底氣,在多種編程語言排行榜上都大有后來居上的趨勢。那么Python,決定就是你了!
接下來是支持庫Numpy。機器學習涉及矩陣運算等大量數學運算,好在Python有兩大特點,一是靈活,二是庫多,Numpy就是Python中專門設計用于科學計算的專業支持庫,在業界有口皆碑。不只是機器學習,其他科學領域譬如天體物理涉及的數學運算,要么直接使用Numpy,要么基于Numpy構建更高層的功能庫。
最后是算法庫Scikit-Learn。基于Python的機器學習算法庫實際上有很多,每過一段時間就會冒出個“前五”“前十”這樣的排行,但穩坐榜首的一直是Scikit-Learn。
它不但種類齊備,市面上見得到的機器學習算法基本上都能在此找到對應的API,簡直是一家“機器學習算法超市”,而且封裝良好、結構清晰,你可以通過簡單幾行代碼就能完成一個復雜算法的調用,是機器學習領域入門的福音,更是進階的法寶。
另外再加上一個Pandas數據處理庫。它內置許多排序、統計之類的實用功能,屬于“沒它也不是不行,但有它會方便很多”的角色。業界實現機器學習,基本上都會用到Numpy、Scikit-Learn和Pandas這三件套。
02 Python簡介
Python是一種動態的高級編程語言,與C和Java需要編譯執行不同,Python代碼是通過解釋器解釋執行,一個明顯的區別是,Python的數據類型不用事先聲明,語法更為靈活多變,代碼看起來也更加簡潔,用C和Java需要十行代碼才能寫明白的意思,可能用Python寫一行就可以了。
高效快速是Python引以為傲的特點,Python社區甚至流傳一句口號:“Life is short, I use Python.”
Python仍在不斷迭代,而且并不向前兼容,這也導致當前Python分裂成兩大版本分支,即Python 2.X和Python 3.X,雖然從語法上看還不至于成為兩款語言,但二者代碼是無法混用的,對于版本的選擇也是開始學習使用Python時所要確定的第一件事。
之前一般認為,Python 2.X的發展時間更長,各方面的支持庫更多且更成熟,不少人推薦從這個版本入手。但隨著Python團隊宣布將于2020年停止對Python 2.X的維護,各大社區都早已開始了從2.X向3.X遷移的工作,所以現在開始學Python的話更建議選擇3.X。Python官網見圖2-1。
▲圖2-1 Python官網首頁
1. Python的安裝
Python具有很強的泛用性,支持Windows、Linux/UNIX、Mac OS X等主流操作系統平臺,安裝也很簡單,可以通過
https://www.python.org/downloads
選擇你使用的操作系統平臺所對應的在線或離線安裝包并進行安裝。在安裝包下載頁面同時提供了多個版本的Python安裝包,如果初次接觸可能讓你覺得難以選擇。不過請放心,你也可以直接下載最新版本的Python安裝包。
▲圖2-2 Python下載頁面
Python是一款開源編程語言,你也可以選擇通過源代碼進行編譯安裝。
2. Python的基本用法?
Python是一款通用編程語言,語法滿足圖靈完備性,這里無法完全展開說明。
不過,如果你熟悉C或者Java語言,那么可以認為Python的語法就是它們的高度精簡版,除了上面提到的不用進行類型聲明外,Python還少了用來表示作用域的大括號以及語句結尾的分號,但同時,在Python中縮進不僅僅是代碼規范,而是語法層面的強制要求。
如果你有語言基礎,記住這些區別,應該就能很快熟練地使用Python。
這里僅對兩項常用的Python工具進行說明,即Python庫安裝工具Pip和Conda。豐富的第三方支持庫是Python功能強大的原因之一。在使用Python實現功能時,往往需要依賴第三方支持庫,這些第三方庫需要先安裝再使用。安裝方法是通過Pip或Conda工具,在命令行輸入命令:
pip?install?庫名或
conda?庫名進行聯網下載并自動安裝。
一般當你成功安裝Python后,就能在命令行中直接使用Pip命令了,而Conda則可能需要額外進行安裝才能夠使用。Conda的功能更為強大,但如果你并不了解Python及相關背景知識,推薦通過Pip工具來下載安裝第三方庫。
在庫的使用方面,Python也與其他編程語言一樣,需要先導入再使用,語法是:
import?庫名import之后就能正常使用庫的資源了。如果庫名較長,還可以使用:
import?庫名?as?別名設定別名之后,通過別名也能夠使用庫的資源。
要使用庫里的某個類,可以通過“庫名.類名”的方法調用。如果認為這樣寫麻煩,或者導致單行語句太長,可以在導入時使用:
from?庫名?import?類名這樣就可以在代碼中直接使用類名了。
03 Numpy簡介
Numpy是Python語言的科學計算支持庫,提供了線性代數、傅里葉變換等非常有用的數學工具。Numpy是Python圈子里非常知名的基礎庫,即使你并不直接進行科學計算,但如圖像處理等相關功能庫,其底層實現仍需要數學工具進行支持,則需要首先安裝Numpy庫。Numpy官網見圖2-3。
▲圖2-3 Numpy官網首頁
1. Numpy的安裝
Numpy的安裝很簡單,使用Pip直接安裝即可。命令如下:
pip?install?-U?numpy2. Numpy的基本用法
Numpy擁有強大的科學計算功能,也許剛一接觸容易眼花繚亂,不知從何入手。不過不必擔心,Array數據類型是Numpy的核心數據結構,與Python的List類型相似,但功能要強大得多。Numpy相關功能都是圍繞著Array類型建設的,可以作為你了解Numpy的一條中心線索。
使用Numpy包很簡單,只要用import導入即可。業界習慣在導入時使用“np”作為它的別名:
import?numpy?as?np導入后就可以使用了,常用功能如下。
array
數據創建
創建Array類型數據
zeros
數據創建
創建值為0的Array類型數據
ones
數據創建
創建值為1的Array類型數據
eye
數據創建
創建單位矩陣
arange
數據創建
類似內置函數range,生成等差數值
linspace
數據創建
生成可指定是否包含終值的等差數值
random.rand
數據創建
隨機生成數值
T
數據操作
轉置操作
reshape
數據操作
不改變原數據的維度變換
resize
數據操作
修改原數據的維度變換
mean
統計操作
取均值
sum
統計操作
求和
max
統計操作
取最大值
min
統計操作
取最小值
var
統計操作
求方差
std
統計操作
求標準差
corrcoef
統計操作
計算相關系數
append
數據操作
新增
insert
數據操作
插入
delete
數據操作
刪除
concatenate
數據操作
按行(列)連接數據表
add
數學運算
標(向)量加法
subtract
數學運算
標(向)量減法
multiply
數學運算
標(向)量乘法
divide
數學運算
標(向)量除法
exp
數學運算
以e為底的指數運算
log
數學運算
以e為底的對數運算
dot
數學運算
點乘
04 Scikit-Learn簡介
正如機器學習中推薦使用Python語言,用Python語言使用機器學習算法時,推薦使用Scikit-Learn工具。
或者應該反過來,現在機器學習推薦使用Python,正是因為Python擁有Scikit-Learn這樣功能強大的支持包,它已經把底層的臟活、累活都默默完成了,讓使用者能夠將寶貴的注意力和精力集中在解決問題上,極大地提高了產出效率。Scikit-Learn官網見圖2-4。
▲圖2-4 Scikit-Learn官網首頁
1. Scikit-Learn的安裝
安裝Scikit-Learn可以有兩種方法。通過Pip安裝,命令如下:
pip?install?-U?scikit-learn或通過 Conda安裝,命令如下:
conda?install?scikit-learn2. Scikit-Learn的基本用法
Scikit-Learn庫包含了常見的機器學習算法,而且還在不斷更新,常見機器學習算法都可以在Scikit-Learn庫中找到,不妨將它當作機器學習算法的百科全書來使用。這里簡要介紹它的用法。
使用Scikit-Learn包很簡單,使用import導入即可,但須注意Scikit-Learn包的包名為sklearn:
import?sklearn調用機器學習算法也非常簡單,Scikit-Learn庫已經將算法按模型分類,查找起來非常方便。如線性回歸算法可以從線性模型中找到,用法如下:
from?sklearn?import?linear_model model?=?linear_model.LinearRegression()Logistic回歸算法也是依據線性模型,同樣也在其下:
from?sklearn.linear_model?import?LogisticRegression model?=linear_model.LogisticRegression()類似的還有基于近鄰模型的KNN算法:
from?sklearn.neighbors?import?NearestNeighbors model?=NearestNeighbors()生成模型后,一般使用fit方法給模型“喂”數據及進行訓練。完成訓練的模型可以使用predict方法進行預測。
Scikit-Learn庫對機器學習算法進行了高度封裝,使用過程非常簡單,只要根據格式填入數據即可,不涉及額外的數學運算操作,甚至可以說只要知道機器學習算法的名字和優劣,就能直接使用,非常便利。
05 Pandas簡介
Pandas是Python語言中知名的數據處理庫。數據是模型算法的燃料,也決定了算法能夠達到的上限。一般在學習中接觸的數據都十分規整,可以直接供模型使用。
但實際上,從生產環境中采集得到的“野生”數據則需要首先進行數據清洗工作,最常見的如填充丟失字段值。數據清洗工作一般使用Pandas來完成,特征工程也可通過Pandas完成。Pandas官網見圖2-5。
▲圖2-5 Pandas官網首頁
1. Pandas的安裝
安裝Pandas可以有兩種方法。通過Pip安裝,命令如下:
pip?install?-U?pandas或通過 Conda安裝,命令如下:
conda?install?pandas2. Pandas的基本用法
Pandas針對數據處理的常用功能而設計,具有從不同格式的文件中讀寫數據的功能,使用Pandas進行一些統計操作特別便利。與Numpy類似,Pandas也有兩個核心的數據類型,即Series和DataFrame。
Series:一維數據,可以認為是一個統計功能增強版的List類型。
DataFrame:多維數據,由多個Series組成,不妨認為是電子表格里的Sheet。
使用Pandas 包很簡單,只要import導入即可。業界習慣在導入時使用“pd”作為它的別名:
import?pandas?as?pd導入后就可以使用了,其常用功能如下。
read_csv
讀取數據
從CSV格式文件中讀取數據
read_excel
讀取數據
從電子表格中讀取數據
read_json
讀取數據
從json格式的文件中讀取數據
read_clipboard
讀取數據
從剪切板讀取數據
to_csv
寫入數據
將數據寫入CSV格式文件
to_excel
寫入數據
將數據寫入電子表格
to_json
寫入數據
將數據寫入json格式文件
to_clipboard
寫入數據
將數據寫入剪切板
Series
寫入數據
創建Series類型數據
DataFrame
寫入數據
創建DataFrame類型數據
head
信息查看
從頭開始查看N位數據
tail
信息查看
從末尾開始查看N位數據
shape
信息查看
行列數信息
dropna
數據操作
刪除空值
fillna
數據操作
填充空值
sort_values
數據操作
正(逆)序排序
append
數據操作
橫向(按行)連接兩個數據表
concat
數據操作
縱向(按列)連接兩個數據表
value_counts
統計操作
值計數
describe
統計操作
總體概況信息
info
統計操作
數值類型統計
mean
統計操作
取均值
corr
統計操作
計算相關系數
count
統計操作
非空值計數
max
統計操作
取最大值
min
統計操作
取最小值
median
統計操作
計算中位數
std
統計操作
計算標準差
關于作者:莫凡,新技術深度愛好者,曾經從事信息安全前沿技術跟蹤研究和數據分析工作,在各類信息安全類技術期刊發表文章五十余篇,現轉為投身高端知識“白菜化”項目,希望能讓將更多聽起來高大上的名詞沾一沾“人間煙火”,成為日常生活中真正用得上的知識。
本文摘編自《機器學習算法的數學解析與Python實現》,經出版方授權發布。
延伸閱讀
《機器學習算法的數學解析與Python實現》
點擊上圖了解及購買
轉載請聯系微信:DoctorData
推薦語:從生活案例中理解算法,發現算法的樂趣,再把算法應用到機器學習中。零基礎掌握算法精髓,快速進入人工智能開發領域。
有話要說????
Q:?入門機器學習,你準備好了嗎?
歡迎留言與大家分享
猜你想看????
新手學Python, 如何從"入門到入土"變為"從入門到快速上車"?
機器學習入門必讀:6種簡單實用算法及學習曲線、思維導圖
2020大風口!什么是圖神經網絡?有什么用?終于有人講明白了
學AI哪家強?2019全球排行清華第1,北大第2
據統計,99%的大咖都完成了這個神操作
????
原來你也在看
總結
以上是生活随笔為你收集整理的小白入门机器学习必备:编程语言环境介绍及搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 终于有人把大数据架构讲明白了
- 下一篇: 为什么中文分词比英文分词更难?有哪些常用