Python機(jī)器學(xué)習(xí)入門(一)序章
前言
每一次變革都由技術(shù)驅(qū)動。縱觀人類歷史,上古時代,人類從采集狩獵社會,進(jìn)化為農(nóng)業(yè)社會;由農(nóng)業(yè)社會進(jìn)入到工業(yè)社會;從工業(yè)社會到現(xiàn)在信息社會。每一次變革,都由新技術(shù)引導(dǎo)。
在歷次的技術(shù)革命中,一個人、一家企業(yè),甚至一個國家,可以選擇的道路只有兩條:要么加入時代的變革,勇立潮頭;要么徘徊觀望,抱憾終生。
要想成為時代弄潮兒,就要積極擁抱這次智能變革,就要掌握在未來社會不會被淘汰的技能,強(qiáng)大自己,為社會、為國家貢獻(xiàn)自己的力量。而在以大數(shù)據(jù)為基石的智能社會,我們就要積極掌握前沿技術(shù),機(jī)器學(xué)習(xí)就是信息時代人工智能領(lǐng)域核心技術(shù)之一。
像個優(yōu)秀的工程師一樣使用機(jī)器學(xué)習(xí),而不要像個機(jī)器學(xué)習(xí)專家一樣使用機(jī)器學(xué)習(xí)方法。
寫在前面
機(jī)器學(xué)習(xí)中算法眾多,原理復(fù)雜,需要大量知識儲備才能真正理解,也不需要完全理解,在今后的學(xué)習(xí)過程中逐漸積累,自然會逐漸掌握。因此本系列不會著重介紹算法原理,而側(cè)重于如何“像一個優(yōu)秀的工程師一樣使用機(jī)器學(xué)習(xí)”。
1.什么是機(jī)器學(xué)習(xí)?
機(jī)器學(xué)習(xí)(Machine Learning,ML)是一門多領(lǐng)域的交叉學(xué)科,涉及概率論、統(tǒng)計(jì)學(xué)、線性代數(shù)、算法等多門學(xué)科。它專門研究如何使計(jì)算機(jī)模擬和學(xué)習(xí)人的行為,以獲取新的知識和技能,重新組織已有的知識結(jié)構(gòu)使之不斷完善自身的性能,
機(jī)器學(xué)習(xí)擁有十分廣泛的應(yīng)用,例如:數(shù)據(jù)挖掘、計(jì)算機(jī)視覺、自然語言處理、生物特征識別、搜索引擎、醫(yī)學(xué)診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別等。
機(jī)器學(xué)習(xí)算法可分為兩大類:監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)。
下圖是機(jī)器學(xué)習(xí)相關(guān)概念的思維導(dǎo)圖:
1.1 監(jiān)督學(xué)習(xí)
監(jiān)督學(xué)習(xí)即在機(jī)器學(xué)習(xí)過程中提供對錯指示。一般是在數(shù)據(jù)組中包含最終結(jié)果(0,1),通過最終結(jié)果來讓機(jī)器自己減小誤差。
這一類學(xué)習(xí)主要應(yīng)用于分類和回歸(Regression & Classify)。監(jiān)督學(xué)習(xí)從給定的訓(xùn)練數(shù)據(jù)集中學(xué)習(xí)出一個目標(biāo)函數(shù),當(dāng)新的數(shù)據(jù)到來時,可以根據(jù)這個函數(shù)預(yù)測結(jié)果。監(jiān)督學(xué)習(xí)的訓(xùn)練集要求包括輸入和輸出(只要有標(biāo)簽的均可認(rèn)為是監(jiān)督學(xué)習(xí)),也可以說包括特征和目標(biāo),訓(xùn)練集中的目標(biāo)是認(rèn)為標(biāo)注的。
常見的監(jiān)督學(xué)習(xí)算法包括回歸分析和統(tǒng)計(jì)分類。
1.2無監(jiān)督學(xué)習(xí)
無監(jiān)督學(xué)習(xí)又稱為歸納性學(xué)習(xí)(Clustering),利用K方式(KMean)建立中心(Centriole),通過循環(huán)和遞減運(yùn)算(Iteration&Descent)來減小誤差,達(dá)到分類的目的。
2.Python中的機(jī)器學(xué)習(xí)
本文將通過項(xiàng)目來介紹基于Python的生態(tài)環(huán)境如何完成機(jī)器學(xué)習(xí)的相關(guān)工作。
利用機(jī)器學(xué)習(xí)的預(yù)測模型來解決問題共有六個基本步驟:
- 定義問題:研究和提煉問題的特征,以便我們采用相應(yīng)的思路和方法來解決問題。
- 數(shù)據(jù)理解:通過統(tǒng)計(jì)性描述和可視化方法來分析現(xiàn)有的數(shù)據(jù)。
- 數(shù)據(jù)準(zhǔn)備:對數(shù)據(jù)進(jìn)行格式化,以便構(gòu)建預(yù)測模型。
- 評估算法:利用測試集來評估算法模型,并選取一部分代表數(shù)據(jù)進(jìn)行分析,以改善模型。
- 優(yōu)化模型:通過調(diào)參和集成算法來提升結(jié)果的準(zhǔn)確度。
- 結(jié)果部署:完成模型,并執(zhí)行模型來預(yù)測結(jié)果和展示。
這也是本文寫作的順序。閱讀完本文,讀者能夠基本了解機(jī)器學(xué)習(xí)的基本步驟、實(shí)現(xiàn)方法,以便在自己的項(xiàng)目中利用機(jī)器學(xué)習(xí)來解決問題。
3.必須環(huán)境安裝
機(jī)器學(xué)習(xí)需要用到的相關(guān)模塊包括SciPy,NumPy,Matplotlib,Pandas,Scikit-learn。
SciPy是在數(shù)學(xué)運(yùn)算、科學(xué)和工程學(xué)方面被廣泛應(yīng)用的Python類庫。它包括統(tǒng)計(jì)、優(yōu)化、整合、線性代數(shù)、傅里葉變換、信號和圖像處理、常微分方程求解器等,被廣泛運(yùn)用在機(jī)器學(xué)習(xí)的項(xiàng)目中。
NumPy(Numerical Python) 是 Python 語言的一個擴(kuò)展程序庫,支持高維度數(shù)組與矩陣運(yùn)算,此外也針對數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫。
Matplotlib是Python中最著名的2D繪圖庫,十分適合交互式地繪圖,也可方便地將它作為繪圖控件,嵌入GUI應(yīng)用程序中。
Pandas 是Python的核心數(shù)據(jù)分析支持庫,提供了快速、靈活、明確的數(shù)據(jù)結(jié)構(gòu),旨在簡單、直觀地處理關(guān)系型、標(biāo)記型數(shù)據(jù)。
Scikit-learn (sklearn) 是基于 Python 語言的機(jī)器學(xué)習(xí)工具,可以實(shí)現(xiàn)數(shù)據(jù)預(yù)處理、分類、回歸、降維、模型選擇等常用的機(jī)器學(xué)習(xí)算法。
Anacodna安裝
Anaconda 個人版是一個免費(fèi)、易于安裝的包管理器、環(huán)境管理器和 Python 發(fā)行版,包含 1,500 多個開源包,并提供免費(fèi)社區(qū)支持。其中的虛擬環(huán)境真的非常Nice,可以方便地針對不同項(xiàng)目安裝不同模塊。
安裝Anaconda時會自動地安裝機(jī)器學(xué)習(xí)需要地所有庫,無需再通過Pip逐個安裝。
Anaconda的安裝十分簡單,但Anaconda官網(wǎng)安裝非常慢,推薦到清華鏡像下載:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
next
I Agree
Just Me
更改安裝路徑到其他盤
勾選Register Anaconda3 as my default Python3.7,不推薦勾選第一個
點(diǎn)擊Install
安裝完成之后可以使用以下命令檢驗(yàn)是否安裝成功:
import scipy import numpy import matplotlib import pandas import sklearn print('scipy:{}'.format(scipy.__version__)) print('numpy:{}'.format(numpy.__version__)) print('matplotlib:{}'.format(matplotlib.__version__)) print('pandas:{}'.format(pandas.__version__)) print('sklearn:{}'.format(sklearn.__version__))
結(jié)果如下:
scipy:1.4.1
numpy:1.21.0
matplotlib:3.4.2
pandas:1.0.1
sklearn:0.22.1
總結(jié)
到此為止,我們已經(jīng)了解了機(jī)器學(xué)習(xí)的基本概念并完成了環(huán)境的安裝,接下來將完善數(shù)據(jù)理解、數(shù)據(jù)準(zhǔn)備、選擇模型、優(yōu)化模型、結(jié)果部署以及項(xiàng)目實(shí)戰(zhàn)。
到此這篇關(guān)于Python機(jī)器學(xué)習(xí)入門(一)序章的文章就介紹到這了,更多相關(guān)Python機(jī)器學(xué)習(xí)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Keras使用tensorboard顯示訓(xùn)練過程的實(shí)例
今天小編就為大家分享一篇Keras使用tensorboard顯示訓(xùn)練過程的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Django框架組成結(jié)構(gòu)、基本概念與文件功能分析
這篇文章主要介紹了Django框架組成結(jié)構(gòu)、基本概念與文件功能,簡單分析了Django框架的基本架構(gòu)、組成、項(xiàng)目創(chuàng)建方法、模塊組成以及相關(guān)文件功能,需要的朋友可以參考下2019-07-07python機(jī)器學(xué)習(xí)實(shí)現(xiàn)oneR算法(以鳶尾data為例)
本文主要介紹了python機(jī)器學(xué)習(xí)實(shí)現(xiàn)oneR算法(以鳶尾data為例),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03基于selenium及python實(shí)現(xiàn)下拉選項(xiàng)定位select
這篇文章主要介紹了基于selenium及python實(shí)現(xiàn)下拉選項(xiàng)定位select,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07django應(yīng)用JWT(JSON?Web?Token)實(shí)戰(zhàn)教程
在前后端分離的項(xiàng)目中,JWT(JSON?Web?Token)作為一種廣泛使用的身份驗(yàn)證和授權(quán)機(jī)制,提供了一種安全、高效的方式來保護(hù)RESTful?API,本文詳細(xì)介紹了JWT的概念、優(yōu)勢、在Django中的應(yīng)用步驟和使用方法,是構(gòu)建安全、高效Web應(yīng)用的有效指南2024-10-10Python利用matplotlib繪制約數(shù)個數(shù)統(tǒng)計(jì)圖示例
這篇文章主要介紹了Python利用matplotlib繪制約數(shù)個數(shù)統(tǒng)計(jì)圖,結(jié)合實(shí)例形式詳細(xì)分析了Python使用matplotlib進(jìn)行統(tǒng)計(jì)圖繪制的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11