機(jī)器學(xué)習(xí)原理與應(yīng)用 課件 第1、2章 機(jī)器學(xué)習(xí)基礎(chǔ);特征選擇與降維_第1頁
機(jī)器學(xué)習(xí)原理與應(yīng)用 課件 第1、2章 機(jī)器學(xué)習(xí)基礎(chǔ);特征選擇與降維_第2頁
機(jī)器學(xué)習(xí)原理與應(yīng)用 課件 第1、2章 機(jī)器學(xué)習(xí)基礎(chǔ);特征選擇與降維_第3頁
機(jī)器學(xué)習(xí)原理與應(yīng)用 課件 第1、2章 機(jī)器學(xué)習(xí)基礎(chǔ);特征選擇與降維_第4頁
機(jī)器學(xué)習(xí)原理與應(yīng)用 課件 第1、2章 機(jī)器學(xué)習(xí)基礎(chǔ);特征選擇與降維_第5頁
已閱讀5頁,還剩181頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

機(jī)器學(xué)習(xí)原理與應(yīng)用第1章機(jī)器學(xué)習(xí)基礎(chǔ)本章學(xué)習(xí)目標(biāo)(知識(shí)要點(diǎn))了解人工智能、機(jī)器學(xué)習(xí)及其關(guān)系;

熟悉機(jī)器學(xué)習(xí)中的基本問題及典型任務(wù);了解機(jī)器學(xué)習(xí)在各領(lǐng)域的場(chǎng)景應(yīng)用;

掌握機(jī)器學(xué)習(xí)開發(fā)環(huán)境的搭建;

熟悉機(jī)器學(xué)習(xí)常用庫、機(jī)器學(xué)習(xí)框架、機(jī)器學(xué)習(xí)平臺(tái)目錄

機(jī)器學(xué)習(xí)簡(jiǎn)介

機(jī)器學(xué)習(xí)任務(wù)

搭建機(jī)器學(xué)習(xí)開發(fā)環(huán)境

機(jī)器學(xué)習(xí)常用庫概述

機(jī)器學(xué)習(xí)框架概述1.11.21.31.41.5

機(jī)器學(xué)習(xí)開源平臺(tái)1.6◎人工智能

◎機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)簡(jiǎn)介1.11.人工智能阿蘭?圖靈提出機(jī)器學(xué)習(xí)、遺傳算法、圖靈測(cè)試等概念1.人工智能約翰·麥卡錫(JohnMcCarthy,1927-2011)1956:TheDartmouthConference(達(dá)茅斯會(huì)議)人工智能(ArtificialIntelligence,AI)1.人工智能人工智能基本任務(wù)知識(shí)表示搜索推理機(jī)器學(xué)習(xí)人工智能按智能程度劃分弱人工智能強(qiáng)人工智能超人工智能1.人工智能人工智能研究的主要內(nèi)容計(jì)算機(jī)視覺模式識(shí)別、圖像處理、圖像生成、人臉識(shí)別等;自然語言理解與交流文本理解及生成、摘要生成、語義理解、語音識(shí)別及合成等;認(rèn)知與推理邏輯推理、自動(dòng)推理、搜索、物理及社會(huì)常識(shí)等;機(jī)器人學(xué)智能控制與設(shè)計(jì)、運(yùn)動(dòng)規(guī)劃、任務(wù)規(guī)劃、博弈等;人工智能倫理社會(huì)倫理、倫理規(guī)范、倫理標(biāo)準(zhǔn)等;機(jī)器學(xué)習(xí)知識(shí)表示、知識(shí)獲取、知識(shí)處理、統(tǒng)計(jì)建模、分析工具及計(jì)算方法等大語言模型GPT、BERT、GPT-4o、OpenAI-o1、DeepSeek-V3等2.機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)(MachineLearning,ML)是研究計(jì)算機(jī)(機(jī)器)如何模擬和實(shí)現(xiàn)人的學(xué)習(xí)行為的一種技術(shù)。1997年,TomMitchell提出機(jī)器學(xué)習(xí)定義提出學(xué)習(xí)問題后,如果計(jì)算機(jī)程序?qū)τ谌蝿?wù)T的性能度量P通過經(jīng)驗(yàn)E得到了提高,則認(rèn)為此程序?qū)?jīng)驗(yàn)E進(jìn)行了學(xué)習(xí)2.機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)研究歷程(五個(gè)學(xué)派)符號(hào)主義、聯(lián)結(jié)主義、進(jìn)化主義、貝葉斯派、Analogizers(類比主義)機(jī)器學(xué)習(xí)學(xué)派起源學(xué)科代表性算法代表性人物應(yīng)用符號(hào)主義(Symbolists)邏輯學(xué)、哲學(xué)逆演繹算法(Inversededuction)TomMitchell、SteveMuggleton、RossQuinlan知識(shí)圖譜聯(lián)結(jié)主義(Connectionist)神經(jīng)科學(xué)反向傳播算法(Backpropagation)、深度學(xué)習(xí)(Deeplearning)YannLeCun、GeoffHinton、YoshuaBengio機(jī)器視覺、語音識(shí)別進(jìn)化主義(Evolutionaries)進(jìn)化生物學(xué)基因編程(Geneticprogramming)JohnKoda、JohnHolland、HodLipson海星機(jī)器人貝葉斯派(Bayesians)統(tǒng)計(jì)學(xué)概率推理(Probabilisticinference)DavidHeckerman、JudeaPearl、MichaelJordan反垃圾郵件、概率預(yù)測(cè)類比主義(Analogizer)心理學(xué)核機(jī)器(Kernelmachines)PeterHart、VladimirVapnik、DouglasHofstadter推薦系統(tǒng)2.機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)基本流程輸入數(shù)據(jù),通過模型訓(xùn)練,預(yù)測(cè)結(jié)果。模型通常為函數(shù)2.機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)分為有監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)、弱監(jiān)督學(xué)習(xí)、自監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)、深度強(qiáng)化學(xué)習(xí)。2.機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)整個(gè)流程問題的定義、收集數(shù)據(jù)、建立特征工程、模型的訓(xùn)練和測(cè)試、模型評(píng)估、

模型應(yīng)用,然后再將應(yīng)用的結(jié)果反饋到問題定義2.機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)處理步驟1)定義問題:根據(jù)具體任務(wù),定義學(xué)習(xí)問題2)收集數(shù)據(jù):將收集的數(shù)據(jù)分成三組:訓(xùn)練數(shù)據(jù)、驗(yàn)證數(shù)據(jù)和測(cè)試數(shù)據(jù)3)特征工程:使用訓(xùn)練數(shù)據(jù)來構(gòu)建使用相關(guān)特征4)模型訓(xùn)練:根據(jù)相關(guān)特征訓(xùn)練模型5)模型評(píng)估:使用驗(yàn)證數(shù)據(jù)評(píng)估訓(xùn)練的模型,測(cè)試數(shù)據(jù)檢查被訓(xùn)練的模型的表現(xiàn)。6)模型應(yīng)用:使用完全訓(xùn)練好的模型在新數(shù)據(jù)上做預(yù)測(cè)7)模型調(diào)優(yōu):根據(jù)模型應(yīng)用中的問題,以及更多數(shù)據(jù)、不同的特征、

參數(shù)來提升算法的性能表現(xiàn)。目錄

機(jī)器學(xué)習(xí)簡(jiǎn)介

機(jī)器學(xué)習(xí)任務(wù)

搭建機(jī)器學(xué)習(xí)開發(fā)環(huán)境

機(jī)器學(xué)習(xí)常用庫概述

機(jī)器學(xué)習(xí)框架概述1.11.21.31.41.5

機(jī)器學(xué)習(xí)開源平臺(tái)1.6◎機(jī)器學(xué)習(xí)問題

◎機(jī)器學(xué)習(xí)典型任務(wù)◎機(jī)器學(xué)習(xí)應(yīng)用場(chǎng)景

機(jī)器學(xué)習(xí)任務(wù)1.21.2.1機(jī)器學(xué)習(xí)問題基本問題分類回歸聚類降維網(wǎng)絡(luò)分析等。前沿問題規(guī)模化學(xué)習(xí)參數(shù)空間自動(dòng)配置學(xué)習(xí)最優(yōu)拓?fù)浣Y(jié)構(gòu)搜索腦等。1.2.1機(jī)器學(xué)習(xí)問題1.回歸(Regression)分類回歸分析用于預(yù)測(cè)輸入變量(自變量)和輸出變量(因變量)之間的關(guān)系。常用回歸算法線性模型、非線性模型、規(guī)則化、逐步回歸、提升(boosted)和袋裝(bagged)決策樹、神經(jīng)網(wǎng)絡(luò)和自適應(yīng)神經(jīng)模糊學(xué)習(xí)1.2.1機(jī)器學(xué)習(xí)問題2.分類(Classification)從數(shù)據(jù)中學(xué)習(xí)一個(gè)分類決策函數(shù)或分類模型(分類器),對(duì)新的輸入進(jìn)行輸出預(yù)測(cè),輸出變量取有限個(gè)離散值。二元分類問題輸出范圍只有兩個(gè)可能的值多元分類問題輸出范圍有多個(gè)值時(shí)常用分類算法支持向量機(jī)(SVM)、提升(boosted)決策樹和袋裝(bagged)決策樹、k-最近鄰、樸素貝葉斯(Na?veBayes)、判別分析、邏輯回歸和神經(jīng)網(wǎng)絡(luò)1.2.1機(jī)器學(xué)習(xí)問題3.聚類(Clustering)分析聚類即給定一組樣本特征,通過發(fā)掘樣本在N維空間的分布,分析樣本間的距離,如哪些樣本距離更近,哪些樣本之間距離更遠(yuǎn),來進(jìn)行樣本類別的劃分。常用分類算法k-均值和k-中心點(diǎn)、分層聚類、模糊聚類、高斯混合模型、隱馬爾可夫模型、自組織映射、減法聚類、單連接群集、預(yù)期最大化(EM)、非負(fù)矩陣分解、潛在狄利克雷分配(LDA)。1.2.1機(jī)器學(xué)習(xí)問題4.降維(DimensionalityReduction)通過降維方法去除冗余的特征,用更少的維數(shù)來表示特征降維可以加快訓(xùn)練的速度、篩選掉一些噪音和冗余特征會(huì)丟失一些信息,需要掌握平衡問題。1.2.1機(jī)器學(xué)習(xí)問題5.網(wǎng)絡(luò)學(xué)習(xí)

網(wǎng)絡(luò)學(xué)習(xí)是通過計(jì)算機(jī)學(xué)習(xí)網(wǎng)絡(luò)的淺層、深層結(jié)構(gòu)、網(wǎng)絡(luò)節(jié)點(diǎn)表示、節(jié)點(diǎn)重要性及其作用等信息。常見的網(wǎng)絡(luò)學(xué)習(xí)算法自組織映射、感知、反向傳播、自動(dòng)編碼、Hopfield網(wǎng)絡(luò)、玻爾茲曼機(jī)器、限制玻爾茲曼機(jī)器、Spiking神經(jīng)網(wǎng)絡(luò)等。1.2.2機(jī)器學(xué)習(xí)典型任務(wù)機(jī)器學(xué)習(xí)任務(wù)分類任務(wù)回歸任務(wù)語音識(shí)別機(jī)器翻譯機(jī)器閱讀理解異常檢測(cè)圖機(jī)器學(xué)習(xí)1.2.3機(jī)器學(xué)習(xí)應(yīng)用場(chǎng)景機(jī)器學(xué)習(xí)應(yīng)用場(chǎng)景廣告推薦用戶畫像營(yíng)銷票房預(yù)測(cè)新聞推薦……目錄

機(jī)器學(xué)習(xí)簡(jiǎn)介

機(jī)器學(xué)習(xí)任務(wù)

搭建機(jī)器學(xué)習(xí)開發(fā)環(huán)境

機(jī)器學(xué)習(xí)常用庫概述

機(jī)器學(xué)習(xí)框架概述1.11.21.31.41.5

機(jī)器學(xué)習(xí)開源平臺(tái)1.6◎開發(fā)環(huán)境系統(tǒng)要求◎Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境◎Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境機(jī)器學(xué)習(xí)開發(fā)環(huán)境1.31.3.1開發(fā)環(huán)境系統(tǒng)要求Windows10或Linux(如Ubuntu18.04)操作系統(tǒng)首先查看自己電腦顯卡的型號(hào)。如顯卡為NVIDIA系列,可選擇安裝GPU版本;否則,需裝CPU版1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Python開發(fā)平臺(tái)1)安裝Anaconda,Anaconda下載地址為:/distribution/,選擇Windows下的python版本,

根據(jù)自己系統(tǒng)是64位,選擇對(duì)應(yīng)版本下載,(歷史版本下載地址:/archive/)Anaconda下載界面1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Python開發(fā)平臺(tái)2)然后運(yùn)行直接默認(rèn)安裝即可,安裝中需要注意如圖所示,勾選默認(rèn)添加環(huán)境變量,將Anaconda環(huán)境配置到PATH環(huán)境變量中配置Anaconda環(huán)境1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Python開發(fā)平臺(tái)3)安裝完成后,檢測(cè)Anaconda環(huán)境是否安裝成功(查看Anaconda版本號(hào)),打開windows下的cmd,輸入命令:conda–version,如安裝成功,則返回當(dāng)前版本號(hào)1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Python開發(fā)平臺(tái)4)安裝完成后,檢測(cè)Anaconda環(huán)境是否安裝成功(查看Anaconda版本號(hào)),打開windows下的cmd,輸入命令:conda–version,如安裝成功,則返回當(dāng)前版本號(hào)1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Python開發(fā)平臺(tái)4)創(chuàng)建Opencv并安裝python3.7,輸入命令:condacreate--nameOpencvpython=3.71.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Python開發(fā)平臺(tái)5)激活并進(jìn)入環(huán)境,輸入命令:condaactivateOpencv6)安裝Opencv,輸入命令:pipinstallopencv-python1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Python開發(fā)平臺(tái)7)進(jìn)入python解釋器:python8)測(cè)試python環(huán)境:print(‘helloworld!’)輸出:helloworld!1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境2.搭建OpenCV開發(fā)平臺(tái)1)激活并進(jìn)入環(huán)境:condaactivateOpencv2)安裝OpenCV環(huán)境:pipinstallopencv-python3)測(cè)試OpenCV環(huán)境,進(jìn)入python解釋器輸入:importcv2不報(bào)錯(cuò)則為正常1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)1)安裝TensorFlow-CPU:打開windows的cmd命令行,創(chuàng)建環(huán)境tf-cpu并安裝python3.7,輸入命令:condacreate--nametf-cpupython=3.72)激活并進(jìn)入環(huán)境,輸入命令:condaactivatetf-cpu1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)3)安裝Tensorflow-cpu,輸入命令:pipinstalltensorflow==1.13.14)安裝numpy1.16.0,輸入命令:pipinstallnumpy==1.16.05)測(cè)試Tensorflow-cpu安裝環(huán)境,進(jìn)入python解釋器,輸入測(cè)試代碼importtensorflowastfhello=tf.constant('Hello,Tensorflow!')sess=tf.Session()print(sess.run(hello)輸出結(jié)果如下b'Hello,Tensorflow!'1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)6)安裝Tensorflow-gpu,查看自己電腦顯卡的型號(hào)。如果顯卡是NVIDIA系列的,繼續(xù)下面步驟;如果顯卡不是NVIDIA系列的,直接裝CPU版即可。右鍵點(diǎn)擊此電腦->管理->設(shè)備管理器->顯示適配器,就可以查看自己電腦顯卡的型號(hào)1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)7)打開英偉達(dá)官網(wǎng)/cuda-gpus查看自己的顯卡型號(hào)算力以及是否支持GPU加速,如果計(jì)算能力≥3.5,可以裝GPU版1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)8)打開網(wǎng)址:/cuda-toolkit-archive,選擇local版本下載和安裝CUDAToolkit10.01.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)9)安裝CUDA,運(yùn)行下載好的安裝包選擇OK解壓1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)10)在兼容性檢測(cè)和同意許可協(xié)議后,選擇精簡(jiǎn)安裝1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)11)安裝完成后,重啟即可,系統(tǒng)會(huì)自動(dòng)添加環(huán)境變量。驗(yàn)證是否安裝成功,在win+R中輸入:powershell,輸入命令:nvcc-V1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)12)下載安裝cuDNN,在網(wǎng)址:/rdp/cudnn-archive中選擇forCUDA10.013)將cuDNN解壓出來的三個(gè)文件夾:bin、include和lib,復(fù)制到C:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDA10目錄下并重啟系統(tǒng)1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)14)Tensorflow-gpu的安裝,與步驟1至2相同,創(chuàng)建并激活進(jìn)入環(huán)境tf-gpu輸入代碼15)安裝Tensorflow-gpu,輸入命令:pipinstalltensorflow-gpu==1.13.1condacreate--nametf-gpupython=3.7condaactivatetf-gpu1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建TensorFlow開發(fā)平臺(tái)16)安裝numpy1.16.0,輸入命令:pipinstallnumpy==1.16.017)測(cè)試Tensorflow-GPU環(huán)境,進(jìn)入python解釋器輸入測(cè)試代碼如下所示,輸出True即安裝成功importtensorflowastfa=tf.test.is_built_with_cuda()b=tf.test.is_gpu_available(cuda_only=False,min_cuda_compute_capability=None)print(a)print(b)1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境4.搭建Pytorch開發(fā)平臺(tái)1)打開Pytorch官網(wǎng)/,GPU安裝方式如圖1-31所示,CUDA選項(xiàng)選擇None即為CPU版本2)Pytorch的安裝,創(chuàng)建并激活進(jìn)入環(huán)境torch,輸入命令如下:

condacreate--nametorchpython=3.7condaactivatetorch1.3.2

Windows10系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境4.搭建Pytorch開發(fā)平臺(tái)3)輸入上圖中RunthisCommand框中的指令安裝Pytorch-gpu2)測(cè)試安裝是否成功,進(jìn)入python解釋器,輸入如下代碼:

importtorchprint("cudaisavailable{}".format(torch.cuda.is_available()))print("torchversion{}".format(torch.__version__))1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Pytorch開發(fā)平臺(tái)1)安裝Anaconda,同上一樣在Anaconda官網(wǎng)地址:/distribution/,選擇linuxpython版本,然后根據(jù)操作系統(tǒng)下載對(duì)應(yīng)的版本1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Pytorch開發(fā)平臺(tái)2)進(jìn)入Anaconda目錄,執(zhí)行命令:bashAnaconda3-2019.10-Linux-x86_64.sh3)按照提示操作,成功安裝1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Pytorch開發(fā)平臺(tái)4)驗(yàn)證Anaconda是否安裝成功,在終端窗口中,輸入命令:conda-V,輸出Anaconda版本號(hào)5)安裝Python環(huán)境,在終端窗口輸入:condacreate–namepython3.7python==3.71.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境1.搭建Pytorch開發(fā)平臺(tái)6)激活并進(jìn)入環(huán)境,在終端窗口輸入:condaactivatepython3.77)測(cè)試Python環(huán)境,首先進(jìn)入python解釋器,在終端窗口輸入:python,輸入測(cè)試代碼如下print(‘helloworld!’)

輸出結(jié)果:helloworld1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境2.搭建OpenCV開發(fā)平臺(tái)1)激活并進(jìn)入Python環(huán)境,安裝Opencv環(huán)境在終端輸入代碼如下condaactivatepython3.7pipinstallopencv-python1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境2.搭建OpenCV開發(fā)平臺(tái)2)測(cè)試Opencv環(huán)境,進(jìn)入Python解釋器,在終端窗口輸入:importcv2不報(bào)錯(cuò)即為安裝成功1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建Tensorflow開發(fā)平臺(tái)1)安裝創(chuàng)建Tensorflow-cpu環(huán)境,在終端窗口輸入:condacreate–nametf-cpupython==3.72)激活Tensorflow-cpu環(huán)境,在終端窗口輸入:condaactivatetf-cpu1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建Tensorflow開發(fā)平臺(tái)3)安裝Tensorflow-cpu,在終端窗口輸入:pipinstalltensorflow==1.13.14)安裝numpy1.16.0,輸入命令:pipinstallnumpy==1.16.01.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建Tensorflow開發(fā)平臺(tái)5)測(cè)試Tensorflow-cpu環(huán)境,進(jìn)入python解釋器,輸入測(cè)試代碼如下importtensorflowastfhello=tf.constant('Hello,Tensorflow!')sess=tf.Session()print(sess.run(hello)輸出結(jié)果如下b'Hello,Tensorflow!’6)Tensorflow-gpu的安裝,查看自己電腦顯卡的型號(hào)。如果顯卡是NVIDIA系列的,繼續(xù)下面步驟;如果顯卡不是NVIDIA系列的,直接裝CPU版即可1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建Tensorflow開發(fā)平臺(tái)7)與步驟1至2相同,創(chuàng)建并激活進(jìn)入環(huán)境tf-gpu輸入代碼如下condacreate--nametf-gpupython=3.7condaactivatetf-gpu8)安裝Tensorflow-gpu,在終端輸入:cundainstalltensorflow-gpu==1.13.11.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境3.搭建Tensorflow開發(fā)平臺(tái)9)安裝numpy1.16.0,輸入命令:pipinstallnumpy==1.16.010)測(cè)試Tensorflow-gpu環(huán)境,進(jìn)入python解釋器輸入測(cè)試代碼如下,結(jié)果都返回True即為安裝成功importtensorflowastfa=tf.test.is_built_with_cuda()b=tf.test.is_gpu_available(cuda_only=False,min_cuda_compute_capability=None)print(a)print(b)1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境4.搭建PyTorch開發(fā)平臺(tái)1)進(jìn)入PyTorch官網(wǎng)/,GPU安裝方式如圖1-48所示,CUDA選項(xiàng)選擇None即為CPU版本1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境4.搭建PyTorch開發(fā)平臺(tái)2)PyTorch的安裝,創(chuàng)建并激活進(jìn)入環(huán)境torch輸入代碼如下condacreate--nametorchpython=3.7condaactivatetorch3)輸入圖中RunthisCommand框中的命令,安裝PyTorch-gpu1.3.3

Linux系統(tǒng)平臺(tái)下搭建開發(fā)環(huán)境4.搭建PyTorch開發(fā)平臺(tái)4)測(cè)試是否安裝成功,進(jìn)入python解釋器,輸入如下代碼importtorchprint("cudaisavailable{}".format(torch.cuda.is_available()))print("torchversion{}".format(torch.__version__))目錄

機(jī)器學(xué)習(xí)簡(jiǎn)介

機(jī)器學(xué)習(xí)任務(wù)

搭建機(jī)器學(xué)習(xí)開發(fā)環(huán)境

機(jī)器學(xué)習(xí)常用庫概述

機(jī)器學(xué)習(xí)框架概述1.11.21.31.41.5

機(jī)器學(xué)習(xí)開源平臺(tái)1.6◎庫簡(jiǎn)介

◎庫安裝及集成機(jī)器學(xué)習(xí)常用庫概述1.41.4.1庫簡(jiǎn)介庫簡(jiǎn)介Python機(jī)器學(xué)習(xí)中庫Numpy、Scipy、Scikit-learn、Theano、TensorFlow、Keras、PyTorch、Pandas、Matplotlib還有Gensim、milk、Octave、mahout、pyml、NLTK、libsvm等庫。1.TheanoTheanos是一個(gè)可以讓用戶定義、優(yōu)化、有效評(píng)價(jià)數(shù)學(xué)表示的Python包,是一個(gè)通用的符號(hào)計(jì)算框架。優(yōu)點(diǎn)是顯式的利用了GPU,使得數(shù)據(jù)計(jì)算比CPU更快,使用圖結(jié)構(gòu)下的符號(hào)計(jì)算架構(gòu)、對(duì)RNN支持很好。缺點(diǎn)是依賴于Numpy,偏底層、調(diào)試?yán)щy、編譯時(shí)間長(zhǎng)、缺乏預(yù)訓(xùn)練模型。當(dāng)前最新的版本為Theano1.0.4。1.4.1庫簡(jiǎn)介2.Scikit-learnScikit-learn是一個(gè)在2007年由數(shù)據(jù)科學(xué)家DavidCournapeau發(fā)起,基于NumPy和SciPy等包的支持的Python語言的機(jī)器學(xué)習(xí)開源工具包。它通過NumPy、SciPy和Matplotlib等Python數(shù)值計(jì)算的庫,實(shí)現(xiàn)有監(jiān)督和無監(jiān)督的機(jī)器學(xué)習(xí)。在分類、回歸、聚類、降維、預(yù)處理等方面,應(yīng)用于數(shù)據(jù)挖掘、數(shù)據(jù)分析等領(lǐng)域,是簡(jiǎn)單高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具。當(dāng)前最新的版本是Scikit-learn0.22.2。3.Statsmodels在Python中,statsmodels是統(tǒng)計(jì)建模分析的核心工具包,其包括了幾乎所有常見的各種回歸模型、非參數(shù)模型和估計(jì)、時(shí)間序列分析和建模以及空間面板模型等最新的版本是statsmodelsv0.11.1。1.4.1庫簡(jiǎn)介4.GensimGensim是一個(gè)開源的第三方Python工具包,用于從原始的非結(jié)構(gòu)化的文本中,無監(jiān)督地學(xué)習(xí)到文本隱層的主題向量表達(dá),其支持TF-IDF、LSA、LDA、word2vec等主題模型算法,通常用于抽取文檔的語義主題。Gensim的輸入是原始的、無結(jié)構(gòu)的數(shù)字文本(純文本),在內(nèi)置的算法支持下,通過計(jì)算訓(xùn)練語料中的統(tǒng)計(jì)共現(xiàn)模式自動(dòng)發(fā)現(xiàn)文檔的語義結(jié)構(gòu)。5.KerasKeras是基于Theano的一個(gè)深度學(xué)習(xí)框架,也是一個(gè)高度模塊化的神經(jīng)網(wǎng)絡(luò)API庫,提供了一種更容易表達(dá)神經(jīng)網(wǎng)絡(luò)的機(jī)制。Keras主要包括14個(gè)模塊包,如Models、Layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics等模塊。另外,Keras還提供了一些用于編譯模型,處理數(shù)據(jù)集,圖形可視化等的最佳工具。Keras運(yùn)行在TensorFlow,CNTK,或Theano之上,支持CPU和GPU運(yùn)行。最新的版本為Keras2.3.1。1.4.1庫簡(jiǎn)介6.DMTKDMTK由一個(gè)服務(wù)于分布式機(jī)器學(xué)習(xí)的框架和一組分布式機(jī)器學(xué)習(xí)算法構(gòu)成,是一個(gè)將機(jī)器學(xué)習(xí)算法應(yīng)用在大數(shù)據(jù)上的強(qiáng)大工具包;支持在超大規(guī)模數(shù)據(jù)上靈活穩(wěn)定地訓(xùn)練大規(guī)模機(jī)器學(xué)習(xí)模型。DMTK的框架包含參數(shù)化的服務(wù)器和客戶端SDK。DMTK是設(shè)計(jì)用于分布式機(jī)器學(xué)習(xí)的平臺(tái)。深度學(xué)習(xí)不是DMTK的重點(diǎn),DMTK中發(fā)布的算法主要是非深度學(xué)習(xí)算法。7.CNTKCNTK是微軟認(rèn)知工具集(MicrosoftCognitiveToolkit,CNTK),是用于商業(yè)級(jí)分布式深度學(xué)習(xí)的開源工具包。它通過有向圖將神經(jīng)網(wǎng)絡(luò)描述為一系列計(jì)算步驟。CNTK允許用戶輕松實(shí)現(xiàn)和組合流行的模型類型,例如前饋DNN,卷積神經(jīng)網(wǎng)絡(luò)(CNN)和遞歸神經(jīng)網(wǎng)絡(luò)(RNN/LSTM)。CNTK通過跨多個(gè)GPU和服務(wù)器的自動(dòng)微分和并行化實(shí)現(xiàn)隨機(jī)梯度下降(SGD,錯(cuò)誤反向傳播)學(xué)習(xí)。CNTK也是第一個(gè)支持開放神經(jīng)網(wǎng)絡(luò)交換ONNX格式的深度學(xué)習(xí)工具包,這是一種用于框架互操作性和共享優(yōu)化的開源共享模型表示。ONNX由Microsoft共同開發(fā),并得到許多其他人的支持,允許開發(fā)人員在CNTK,Caffe2,MXNet和PyTorch等框架之間移動(dòng)模型。1.4.2庫安裝及集成1.Theano安裝1)在Anaconda中創(chuàng)建并進(jìn)入環(huán)境,注意python版本要≤3.6(參考1.4搭建機(jī)器學(xué)習(xí)開發(fā)環(huán)境)輸入命令:condacreate--nameMLpython==3.62)安裝Theano輸入命令:condainstallTheano3)安裝Theano環(huán)境所依賴組件condainstallmkl-servicepipinstallnoseypipinstallparameterized4)測(cè)試Theano安裝環(huán)境,進(jìn)入python解釋器輸入代碼如下代碼importtheanotheano.test()1.4.2庫安裝及集成2.Scikit-learn安裝1)在Anaconda中創(chuàng)建并進(jìn)入環(huán)境,注意python版本要≤3.6(參考1.4搭建機(jī)器學(xué)習(xí)開發(fā)環(huán)境)輸入:condacreate--nameMLpython==3.62)安裝Scikit-learn,輸入命令:condainstallscikit-learn3)測(cè)試Scikit-learn安裝環(huán)境,進(jìn)入python解釋器,輸入代碼如下fromsklearnimportdatasetsiris=datasets.load_iris()digits=datasets.load_digits()print(digits.data)目錄

機(jī)器學(xué)習(xí)簡(jiǎn)介

機(jī)器學(xué)習(xí)任務(wù)

搭建機(jī)器學(xué)習(xí)開發(fā)環(huán)境

機(jī)器學(xué)習(xí)常用庫概述

機(jī)器學(xué)習(xí)框架概述1.11.21.31.41.5

機(jī)器學(xué)習(xí)開源平臺(tái)1.6機(jī)器學(xué)習(xí)框架概述 1.51.5機(jī)器學(xué)習(xí)框架概述常用的機(jī)器學(xué)習(xí)框架CaffeTensorflowMXNetPytorchApacheMahoutApacheSingaMlibH2O1.5機(jī)器學(xué)習(xí)框架概述1.Caffe框架Caffe(ConvolutionArchitectureForFeatureExtraction)是一個(gè)兼具表達(dá)性、速度和思維模塊化的深度學(xué)習(xí)框架,出現(xiàn)于2013年,設(shè)計(jì)初衷是應(yīng)用于計(jì)算機(jī)視覺。其內(nèi)核是用C++編寫的,Caffe支持多種類型的深度學(xué)習(xí)架構(gòu),支持CNN、RCNN、LSTM、全連接神經(jīng)網(wǎng)絡(luò)設(shè)計(jì),以及基于GPU和CPU的加速計(jì)算內(nèi)核庫。此外,Caffe有Python和Matlab相關(guān)接口。2017年4月,F(xiàn)acebook發(fā)布Caffe2,增加遞歸神經(jīng)網(wǎng)絡(luò)等新功能。2018年3月底,Caffe2并入PyTorch。Caffe具有完全開源、模塊化、表示和實(shí)現(xiàn)分離、GPU加速、Python和MATLAB結(jié)合等特點(diǎn)。下載鏈接:/BVLC/caffe/資源鏈接:/1.5機(jī)器學(xué)習(xí)框架概述2.TensorFlowTensorFlow是由Google設(shè)計(jì)開發(fā)的開源的機(jī)器學(xué)習(xí)框架,以Python語言為基礎(chǔ),主要用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)應(yīng)用,其特點(diǎn)包含可以方便的用張量來定義、優(yōu)化、計(jì)算數(shù)學(xué)形式化表達(dá),支持深度神經(jīng)網(wǎng)絡(luò)、機(jī)器學(xué)習(xí)算法,適用于不同數(shù)據(jù)集的高性能數(shù)值計(jì)算。TensorFlow可以跨平臺(tái)在Linux、Windows、Mac系統(tǒng)下運(yùn)行,也可以在移動(dòng)終端下運(yùn)行,用戶可以輕松地將計(jì)算工作部署到多種平臺(tái)(CPU、GPU、TPU)上進(jìn)行分布式計(jì)算,也可以部署到設(shè)備,如桌面設(shè)備、服務(wù)器集群、移動(dòng)設(shè)備、邊緣設(shè)備等。TensorFlow模塊包含TensorBoard、Datasets、TensorflowHub、Serving、ModelOptimization、Probability、TensorFlowFederated、MLIR、NeuralStructuredLearing、XLA、TensorFlowGraphics、SIGAddons、SIGIO當(dāng)前版本為TensorFlow2中文鏈接:/?hl=zh-cn安裝鏈接:/install?hl=zh-cn1.5機(jī)器學(xué)習(xí)框架概述3.MXNetMXNet是一個(gè)輕量級(jí)的深度學(xué)習(xí)框架(亞馬遜AWS選擇支持),支持Python,R,Julia,Scala,Go,Javascript等,支持多語言接口和多GPU。MXNet嘗試將聲明式編程與命令式編程兩種模式無縫的結(jié)合,在命令式編程上MXNet提供張量運(yùn)算,而聲明式編程中MXNet支持符號(hào)表達(dá)式。MXNetPython庫包含NDArray、Symbol、KVStore,NDArray提供矩陣和張量計(jì)算,Symbol定義神經(jīng)網(wǎng)絡(luò),提供自動(dòng)微分,KVStore使得數(shù)據(jù)在多GPU和多個(gè)機(jī)器間同步。當(dāng)前的版本為MXNet1.9鏈接:/versions/1.9.1/源代碼鏈接:/repos/asf#mxnet1.5機(jī)器學(xué)習(xí)框架概述4.PytorchPyTorch前身起源于1990年產(chǎn)生的Torch,其底層與Torch框架一樣,是應(yīng)用于機(jī)器學(xué)習(xí)的優(yōu)化的張量庫,支持GPU和CPU。PyTorch除了基本的torchPythonAPI庫之外,還有處理音頻、文本、視覺等庫,如torchaudio、torchitext、torchvision、torchElastic等。2018年4月Facebook宣布Caffe2將正式將代碼并入了PyTorch。PyTorch在數(shù)據(jù)加載API、構(gòu)建神經(jīng)網(wǎng)絡(luò)等方面具有明顯優(yōu)勢(shì)。當(dāng)前的版本為PyTorch2.6官方鏈接:/1.5機(jī)器學(xué)習(xí)框架概述5.ApacheMahoutApacheMahout是ApacheSoftwareFoundation(ASF)開發(fā)的一個(gè)全新的開源項(xiàng)目,提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn)。Mahout包括聚類、分類、推薦過濾、頻繁子項(xiàng)挖掘等。同時(shí),Mahout通過ApacheHadoop庫可以擴(kuò)展到云端。Mahout已經(jīng)包含TasteCF,支持k-Means、模糊k-Means、Canopy、Dirichlet、Mean-Shift、Matrix和矢量庫等在集群上的分布式運(yùn)行。當(dāng)前的版本為ApacheMahout14.1官方鏈接:/1.5機(jī)器學(xué)習(xí)框架概述6.ApacheSingaSINGA項(xiàng)目始于2014年,由新加坡國立大學(xué)數(shù)據(jù)庫系統(tǒng)實(shí)驗(yàn)室聯(lián)合浙江大學(xué)和網(wǎng)易共同開發(fā)完成,是一個(gè)開源的分布式、可擴(kuò)展的深度學(xué)習(xí)平臺(tái),它可以在機(jī)器集群上訓(xùn)練大規(guī)模的機(jī)器學(xué)習(xí)模型,尤其是深度學(xué)習(xí)模型。2019年10月,SINGA項(xiàng)目成為Apache軟件基金會(huì)(ApacheSoftwareFoundation,ASF)頂級(jí)項(xiàng)目。其包含硬件層、支撐層、接口層、Python應(yīng)用層。SINGA通過代碼模塊化來支持不同類型的深度學(xué)習(xí)模型,不同的訓(xùn)練(優(yōu)化)算法和底層硬件設(shè)備。另外,SINGA同時(shí)支持ONNX、DLaaS(DeepLearningasaService)等。當(dāng)前的版本為SINGA4.3官方鏈接:/Github鏈接:/apache/singa1.5機(jī)器學(xué)習(xí)框架概述7.MLlibMLlib是最早由AMPLab、UC伯克利發(fā)起的Spark子項(xiàng)目常用機(jī)器學(xué)習(xí)庫。MLlib已經(jīng)Java、Scala和Python語言,支持通用的機(jī)器學(xué)習(xí)算法,如分類、回歸、聚類、協(xié)同過濾(ALS)、降維(SVD、PCA)、特征提取與轉(zhuǎn)換、優(yōu)化(隨機(jī)梯度下降、L-BFGS)等。它在Spark中可以實(shí)現(xiàn)GraphX+MLIib、Streaming+MLIib、SparkSQL+MLIib等組合應(yīng)用。官方鏈接:/mllib/文檔鏈接:/docs/latest/ml-guide.html1.5機(jī)器學(xué)習(xí)框架概述8.H2OH2O是由Oxdata于2014年推出的一個(gè)獨(dú)立開源機(jī)器學(xué)習(xí)平臺(tái),主要功能是為app提供快速的機(jī)器學(xué)習(xí)引擎。H2O支持大量的無監(jiān)督式和監(jiān)督式機(jī)器學(xué)習(xí)算法,可以通過對(duì)R與Python進(jìn)行引入包的方式進(jìn)行模型的開發(fā),提供可視化的UI界面建模工具,以及模型的快速部署、自動(dòng)化建模和自動(dòng)化參數(shù)調(diào)優(yōu)。另外,H2O提供了許多集成,如H2O+TensorFlow+MXNet+Caffe、H2O+Spark等。H2O4GPU是H2O開發(fā)的基于GPU機(jī)器學(xué)習(xí)加速的工具包。其最新穩(wěn)定的版本是1.8LTS。H2O也提供了一個(gè)RESTAPI,用于通過HTTP上的JSON從外部程序或腳本訪問所有軟件的功能。H2O核心代碼使用Java編寫,數(shù)據(jù)和模型通過分布式Key/Value存儲(chǔ)在各個(gè)集群節(jié)點(diǎn)的內(nèi)存中。H2O的算法使用Map/Reduce框架實(shí)現(xiàn),并使用了JavaFork/Join框架來實(shí)現(xiàn)多線程。官方鏈接:https://h2o.ai/platform/ai-cloud/make/h2o/目錄

機(jī)器學(xué)習(xí)簡(jiǎn)介

機(jī)器學(xué)習(xí)任務(wù)

搭建機(jī)器學(xué)習(xí)開發(fā)環(huán)境

機(jī)器學(xué)習(xí)常用庫概述

機(jī)器學(xué)習(xí)框架概述1.11.21.31.41.5

機(jī)器學(xué)習(xí)開源平臺(tái)1.6機(jī)器學(xué)習(xí)開源平臺(tái) 1.61.6機(jī)器學(xué)習(xí)開源平臺(tái)機(jī)器學(xué)習(xí)開源平臺(tái)PaddlePaddlePhotonMLX-DeepLearningAngelAWS1.6機(jī)器學(xué)習(xí)開源平臺(tái)1.PaddlePaddlePaddlePaddle(ParallelDistributedDeepLearning,并行分布式深度學(xué)習(xí)),又稱飛槳,是百度發(fā)起的開源深度學(xué)習(xí)平臺(tái),支持大規(guī)模稀疏參數(shù)訓(xùn)練場(chǎng)景、千億規(guī)模參數(shù)、數(shù)百個(gè)節(jié)點(diǎn)的高效并行訓(xùn)練,同時(shí)支持動(dòng)態(tài)圖和靜態(tài)圖,具有易用,高效,靈活和可伸縮等特點(diǎn)。飛槳支持本地和云端兩種開發(fā)和部署模式,其組件使用場(chǎng)景如圖官方中文鏈接:/Github鏈接:/PaddlePaddle/Paddle1.6機(jī)器學(xué)習(xí)開源平臺(tái)2.PhotonMLPhotonML是LinkedIn公司開發(fā)的應(yīng)用于ApacheSpark的機(jī)器學(xué)習(xí)庫。PhotonML支持大規(guī)模回歸、L1、L2和elastic-net正則化的線性回歸、邏輯回歸和泊松回歸。提供可選擇的模型診斷,創(chuàng)建表格來幫助診斷模型和擬合的優(yōu)化問題,實(shí)現(xiàn)了實(shí)驗(yàn)性質(zhì)的廣義混合效應(yīng)模型。PhotonML把典型的機(jī)器學(xué)習(xí)系統(tǒng)分為三個(gè)階段部分,第一階段部分是數(shù)據(jù)準(zhǔn)備,包含在線數(shù)據(jù)的ETL,即數(shù)據(jù)抽?。‥xtract)、轉(zhuǎn)換(Transform)、加載(Load),以及創(chuàng)建標(biāo)簽、加入特征;第二階段部分是采樣數(shù)據(jù),分為訓(xùn)練數(shù)據(jù)集、測(cè)試數(shù)據(jù)集,通過特征計(jì)算,訓(xùn)練Photon機(jī)器學(xué)習(xí)模型,選取最優(yōu)評(píng)分模型,在測(cè)試數(shù)據(jù)集驗(yàn)證;第三部分是最優(yōu)模型在線部署,進(jìn)行A/B測(cè)試,驗(yàn)證效果,具體流程如下圖Github鏈接:/linkedin/photon-ml1.6機(jī)器學(xué)習(xí)開源平臺(tái)3.X-DeepLearningX-DeepLearning(簡(jiǎn)稱XDL)是由阿里發(fā)起的面向高維稀疏數(shù)據(jù)場(chǎng)景(如廣告、推薦、搜索等)深度優(yōu)化框架,其主要特性有:針對(duì)大batch/低并發(fā)場(chǎng)景的性能優(yōu)化;存儲(chǔ)及通信優(yōu)化,參數(shù)無需人工干預(yù)自動(dòng)全局分配,請(qǐng)求合并,徹底消除ps的計(jì)算/存儲(chǔ)/通信熱點(diǎn);完整的流式訓(xùn)練,包括特征準(zhǔn)入,特征淘汰,模型增量導(dǎo)出,特征counting統(tǒng)計(jì)等。XDL專注解決搜索廣告等稀疏場(chǎng)景的模型訓(xùn)練性能問題,因此將模型計(jì)算分為稀疏和稠密兩部分,稀疏部分通過參數(shù)服務(wù)器,GPU加速,參數(shù)合并等技術(shù)極大提升了稀疏特征的計(jì)算和通信性能。稠密部分采用多backend設(shè)計(jì),支持TF和Mxnet兩個(gè)引擎作為計(jì)算后端,并且可以使用原生TF和MxnetAPI定義模型。此外,XDL支持單機(jī)及分布式兩種訓(xùn)練模式,單機(jī)模式一般用來做早期模型的調(diào)試和正確性驗(yàn)證,為了充分發(fā)揮XDL的稀疏計(jì)算能力,建議使用分布式模式進(jìn)行大規(guī)模并行訓(xùn)練。Github鏈接:/alibaba/x-deeplearning1.6機(jī)器學(xué)習(xí)開源平臺(tái)4.AngelAngel是一個(gè)基于參數(shù)服務(wù)器架構(gòu)的分布式機(jī)器學(xué)習(xí)平臺(tái)。Angel能夠高效的支持現(xiàn)有的大數(shù)據(jù)系統(tǒng)以及機(jī)器學(xué)習(xí)系統(tǒng)——依賴于參數(shù)服務(wù)器處理高維模型的能力,Angel能夠以無侵入的方式為大數(shù)據(jù)系統(tǒng)(比如ApacheSpark)提供高效訓(xùn)練超大機(jī)器學(xué)習(xí)模型的能力,并且高效的運(yùn)行已有的分布式機(jī)器學(xué)習(xí)系統(tǒng)(比如PyTorch)。此外,針對(duì)分布式機(jī)器學(xué)習(xí)中通信開銷大和掉隊(duì)者問題,Angel也提供了模型平均、梯度壓縮和異構(gòu)感知的隨機(jī)梯度下降解法等。目前Angel支持Java和Scala,Angel系統(tǒng)基本架構(gòu)如圖1-59所示,主要包括四個(gè)部分,分別為:客戶端(Client)、主控節(jié)點(diǎn)(Master)、計(jì)算節(jié)點(diǎn)(Worker)和存儲(chǔ)節(jié)點(diǎn)(Server)。Github鏈接:/Angel-ML/angel1.6機(jī)器學(xué)習(xí)開源平臺(tái)5.AWSAWS是Amazon開發(fā)的機(jī)器學(xué)習(xí)平臺(tái),其提供了豐富的軟件開發(fā)工具包和工具包,如AWS命令行界面CLI、Ruby、JavaScript、Python、PHP、.NET、Node.js、Android、IOS等,應(yīng)用在機(jī)器學(xué)習(xí)、用戶計(jì)算、機(jī)器人技術(shù)、區(qū)塊鏈、物聯(lián)網(wǎng)、游戲開發(fā)、數(shù)據(jù)分析等方面,提供的服務(wù)包含AmazonPolly、AWSDeepLearning、AMIAmazonTranscribe等中文鏈接:/cn/本章小結(jié)機(jī)器學(xué)習(xí)基礎(chǔ)人工智能機(jī)器學(xué)習(xí)分類及典型算法機(jī)器學(xué)習(xí)任務(wù)領(lǐng)域應(yīng)用場(chǎng)景機(jī)器學(xué)習(xí)開發(fā)環(huán)境搭建Windows10系統(tǒng)下搭建Linux系統(tǒng)下搭建機(jī)器學(xué)習(xí)常用庫、集成安裝、常用工具集機(jī)器學(xué)習(xí)常見的框架開源平臺(tái)習(xí)題概念題機(jī)器學(xué)習(xí)典型任務(wù)有哪些,分別應(yīng)用于哪些場(chǎng)景?機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)三者之間的關(guān)系是什么?搭建機(jī)器學(xué)習(xí)開發(fā)環(huán)境常用的軟件有那些?常見的機(jī)器學(xué)習(xí)框架有那些,它們之間有什么關(guān)系?操作題編寫一個(gè)文本分析處理程序。要求如下:(1)用Tensorflow和Torch完成自動(dòng)讀取指定目錄下指定格式的數(shù)據(jù);(2)支持文件正則解析操作;(3)使用文件存儲(chǔ)數(shù)據(jù)。參考文獻(xiàn)MitchellT.M.,HillM.MachineLearning[M].NewYork:McGraw-HillScience/Engineering/Math,1997.楊強(qiáng).機(jī)器學(xué)習(xí)的幾個(gè)前沿問題[R].中國工程院知識(shí)智能聯(lián)合研究中心年會(huì)暨認(rèn)知智能高峰論壇.北京:2020.LevineS,KumarA,TuckerG,etal.OfflineReinforcementLearning:Tutorial,Review,andPerspectivesonOpenProblems[C/OL]./10.48550/arXiv.2005.01643,2020.ChalapathyR.,ChawlaS.DeepLearningforAnomalyDetection:ASurvey[J].CoRR,vol.abs/1901.03407,2019.ZhangZ,WangX,ZhuW.AutomatedMachineLearningonGraphs:ASurvey[C].Proceedingsofthe27thACMSIGKDDConferenceonKnowledgeDiscovery&DataMining,NewYork:AssociationforComputingMachinery,2021謝謝!94機(jī)器學(xué)習(xí)原理與應(yīng)用第2章

特征選擇與降維本章學(xué)習(xí)目標(biāo)(知識(shí)要點(diǎn))了解特征選擇的作用,熟悉特征選擇一般框架和常用方法,掌握其實(shí)現(xiàn)原理和應(yīng)用;掌握特征選擇的常用方法;熟悉降維技術(shù)基本原理和主要技術(shù);熟悉主成分分析技術(shù)的原理及應(yīng)用。目錄

特征選擇簡(jiǎn)介

特征選擇方法

降維技術(shù)

主成分分析

綜合案例:基于feature_selector庫

的商業(yè)信貸特征選擇2.12.22.32.42.5特征選擇簡(jiǎn)介2.11.特征選擇目的1)避免維數(shù)災(zāi)難問題在現(xiàn)實(shí)任務(wù)中經(jīng)常遇到維數(shù)災(zāi)難問題,即描述一個(gè)對(duì)象的特征集合非常大,例如一張圖片包含百萬級(jí)像素,一篇文章包含成千上萬級(jí)詞匯。通過特征選擇可以減少特征個(gè)數(shù),使得后續(xù)學(xué)習(xí)過程在低維空間中構(gòu)建模型,大幅度減輕維數(shù)災(zāi)難問題,提高機(jī)器學(xué)習(xí)算法的效率。舉例來說,100個(gè)平均分布的點(diǎn)能把一個(gè)單位區(qū)間以每個(gè)點(diǎn)距離不超過0.01采樣;而當(dāng)維度增加到10后,如果以相鄰點(diǎn)距離不超過0.01小方格采樣一單位超正方體,則需要1020

個(gè)采樣點(diǎn):所以,這個(gè)10維的超正方體也可以說是比單位區(qū)間大1018倍.如圖任務(wù):分類三角形和圓[1]1.特征選擇目的2)降低噪音、提取有效信息龐大的特征集合可能只有少量的元素很相關(guān),而另一些大量的特征則可能是無關(guān)或冗余的。所謂無關(guān)特征即與當(dāng)前學(xué)習(xí)目標(biāo)沒有直接聯(lián)系的特征,而冗余特征則不會(huì)給目標(biāo)對(duì)象增加任何新信息,可以從其他特征推演出來。例如一篇描述足球比賽的文章,可能其中一些關(guān)鍵詞足以讓讀者了解其主題,但是諸如大量的“的”、“是的”等詞匯則并不能反映這篇文章的有效信息;而描述一個(gè)運(yùn)動(dòng)足球踢的“好”,“那么好”這個(gè)詞相比于“精準(zhǔn)”、“迅速”等詞匯是冗余特征。去除不相關(guān)或冗余的特征往往會(huì)降低學(xué)習(xí)任務(wù)的難度,讓機(jī)器學(xué)習(xí)算法抽絲剝繭,獲取更重要的特征。1.特征選擇目的3)降低過擬合風(fēng)險(xiǎn)特征數(shù)量越多,訓(xùn)練樣本就會(huì)越稀疏。隨著特征數(shù)量的增加,為了覆蓋特征值,就需要更多的訓(xùn)練樣本。如果沒有足夠的訓(xùn)練樣本,就可能會(huì)出現(xiàn)過擬合問題。輸入變量會(huì)增加模型本身的額外自由度,這些額外的自由度對(duì)于模型記住某些細(xì)節(jié)信息會(huì)有所幫助,但對(duì)于創(chuàng)建一個(gè)穩(wěn)定性良好、泛化性能強(qiáng)的模型可能卻沒有好處,也就是說增加額外的不相關(guān)變量容易增大過擬合的風(fēng)險(xiǎn),在新數(shù)據(jù)上可能表現(xiàn)不佳。而更少的輸入維數(shù)通常意味著相應(yīng)的更少的參數(shù)或更簡(jiǎn)單的結(jié)構(gòu),一定程度能幫助學(xué)習(xí)算法改善所學(xué)模型的通用性、降低過擬合風(fēng)險(xiǎn)的作用。2.特征選擇步驟機(jī)器學(xué)習(xí)算法中采用特征選擇技術(shù)的一般框架特征選擇:就是如何選取一個(gè)包含所需要重要信息的特征子集。通常做法是先產(chǎn)生一個(gè)候選子集,接著對(duì)其重要性進(jìn)行評(píng)估,然后根據(jù)評(píng)價(jià)結(jié)果產(chǎn)生下一個(gè)候選子集,再對(duì)其進(jìn)行評(píng)估,如此循環(huán)持續(xù)進(jìn)行,直到無法產(chǎn)生一個(gè)更好的候選子集為止。兩個(gè)關(guān)鍵環(huán)節(jié):子集搜索、子集評(píng)價(jià)2.特征選擇步驟

2.特征選擇步驟

目錄

特征選擇簡(jiǎn)介

特征選擇方法

降維技術(shù)

主成分分析

綜合案例:基于feature_selector庫

的商業(yè)信貸特征選擇2.12.22.32.42.5◎過濾式方法

◎包裹式方法◎嵌入式方法特征選擇方法2.22.2特征選擇方法特征選擇方法(根據(jù)特征選擇模塊與機(jī)器學(xué)習(xí)算法之間的關(guān)系)過濾式(Filter)方法特征選擇過程獨(dú)立,與后續(xù)學(xué)習(xí)器的訓(xùn)練無關(guān)。包裹式(Wrapper)方法特征選擇過程與機(jī)器學(xué)習(xí)算法有關(guān),特征選擇依賴于學(xué)習(xí)器的性能作為特征子集的評(píng)價(jià)準(zhǔn)則,兩者迭代進(jìn)行。嵌入式(Embedding)方法特征選擇過程與機(jī)器學(xué)習(xí)算法有關(guān),特征選擇與學(xué)習(xí)器訓(xùn)練過程融為一體,在學(xué)習(xí)器訓(xùn)練過程中自動(dòng)進(jìn)行特征選擇。2.2.1過濾式方法

2.2.1過濾式方法單變量過濾式方法每個(gè)特征在特征空間中獨(dú)立地進(jìn)行排序不需要考慮特征之間的相互關(guān)系優(yōu)點(diǎn)是計(jì)算效率高,不易過擬合缺點(diǎn)是不太能去掉冗余特征代表性方法包括方差檢驗(yàn)法、卡方檢驗(yàn)法、皮爾森相關(guān)系數(shù)法、互信息法等多變量過濾式方法考慮特征變量之間的相互關(guān)系常用基于相關(guān)性和一致性的特征選擇優(yōu)點(diǎn)是能夠自然地處理冗余特征情況代表性方法Relief算法等2.2.1過濾式方法

2.2.1過濾式方法上述可以直接利用sklearn包的方差特征選擇函數(shù)實(shí)現(xiàn),如下述代碼所示#載入數(shù)據(jù)fromsklearn.datasetsimportload_irisiris=load_iris()#加載方差檢驗(yàn)特征選擇函數(shù)fromsklearn.feature_selectionimportVarianceThreshold

var=VarianceThreshold(threshold=1)#threshold為方差的閾值,默認(rèn)0;這里剔除方差小于#1的特征var=var.fit_transform(iris.data)#返回特征選擇后的特征2.2.1過濾式方法

2.2.1過濾式方法直接利用sklearn包的卡方檢驗(yàn)特征選擇函數(shù)實(shí)現(xiàn),如下述代碼所示#載入數(shù)據(jù)fromsklearn.datasetsimportload_irisiris=load_iris()

#加載卡方檢驗(yàn)特征選擇函數(shù)fromsklearn.feature_selectionimportSelectKBest#移除topK外的特征fromsklearn.feature_selectionimportchi2#卡方檢驗(yàn)

model=SelectKBest(chi2,k=5)#根據(jù)卡方統(tǒng)計(jì)量選擇前k個(gè)值最高的特征model.fit_transform(iris.data,iris.target)var=model.get_support(True)#返回特征選擇后的特征

2.2.1過濾式方法

2.2.1過濾式方法Pearson相關(guān)系數(shù)特征選擇法可以直接利用sklearn包以及Scipy的pearsonr函數(shù)實(shí)現(xiàn),如下述代碼所示#載入數(shù)據(jù)fromsklearn.datasetsimportload_irisiris=load_iris()

#加載Pearson相關(guān)系數(shù)法fromsklearn.feature_selectionimportSelectKBest#移除topK外的特征fromscipy.statsimportpearsonr#計(jì)算皮爾森相關(guān)系數(shù)fromnumpyimportarray

#SelectKBest第一個(gè)參數(shù)為計(jì)算評(píng)估特征是否好的函數(shù),該函數(shù)的輸入為特征矩陣和類別向量,輸出二元組(評(píng)分,P值)的數(shù)組,數(shù)組第i項(xiàng)為第i個(gè)特征的評(píng)分和P值。model=SelectKBest(lambdaX,Y:array(map(lambdax:pearsonr(x,Y),X.T)).T,,k=3)#根據(jù)皮爾森相關(guān)系數(shù)選擇前k個(gè)值最高的特征model.fit_transform(iris.data,iris.target)var=model.get_support(True)#返回特征選擇后的特征2.2.1過濾式方法案例(基于互信息的特征選擇)1.數(shù)據(jù)集此次采用數(shù)據(jù)集Paribas,該數(shù)據(jù)為法國巴黎銀行個(gè)人用戶理賠的匿名數(shù)據(jù),可從/c/bnp-paribas-cardif-claims-management/data下載,部分?jǐn)?shù)據(jù)如下所示,Paribas中每個(gè)數(shù)據(jù)樣本的特征向量包含133維特征,既有數(shù)值型特征,也有文本型特征;target代表數(shù)據(jù)樣本的類別標(biāo)簽2.2.1過濾式方法案例(基于互信息的特征選擇)2.安裝sklearn包等,引入特征選擇相關(guān)庫#引入基礎(chǔ)依賴包importpandasaspdimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_splitfromsklearn.feature_selectionimportmutual_info_classiffromsklearn.feature_selectionimportSelectKBest3.導(dǎo)入數(shù)據(jù)以及預(yù)處理#導(dǎo)入20000條樣本示例數(shù)據(jù)df=pd.read_csv('paribas-train.csv',nrows=20000)#過濾非數(shù)字類特征numerics=['int16','int32','int64','float16','float32','float64']

numerical_features=list(df.select_dtypes(include=numerics).columns)

data=df[numerical_features]#劃分特征數(shù)據(jù)和類別標(biāo)簽,并對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練集和測(cè)試集劃分X=data.drop(['target','ID'],axis=1)#特征向量集合

y=data['target']#類別標(biāo)簽序列

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=101)2.2.1過濾式方法案例(基于互信息的特征選擇)4.基于互信息度量對(duì)特征進(jìn)行排序#計(jì)算訓(xùn)練集中每個(gè)特征與類別標(biāo)簽之間的互信息mutual_info=mutual_info_classif(X_train.fillna(0),y_train)mi_series=pd.Series(mutual_info)mi_series.index=X_train.columns#根據(jù)互信息值對(duì)特征進(jìn)行排序,并繪制柱形圖mi_series.sort_values(ascending=False).plot.bar(figsize=(20,8))5.選擇排名最高的特性k_best_features=SelectKBest(mutual_info_classif,k=10).fit(X_train.fillna(0),y_train)print('Selectedtop10features:{}'.format(X_train.columns[k_best_features.get_support()]))最終選出來的特征為:按照互信息的特征排序2.2.2包裹式方法過濾式方法獨(dú)立于任何特定的分類器。缺點(diǎn)完全忽略了所選特征子集對(duì)機(jī)器學(xué)習(xí)算法性能的影響,因此所選擇的特征子集不一定對(duì)于模型是最佳的。與過濾式方法區(qū)別包裹式方法假定最優(yōu)特征子集應(yīng)當(dāng)依賴于算法中的歸納偏置(即算法本身的一些啟發(fā)式假設(shè))。基于此,包裹式方法直接把最終將要使用的模型性能作為特征子集的評(píng)價(jià)標(biāo)準(zhǔn)包裹式方法目的為給定的模型選擇最有利于其性能的特征子集。2.2.2包裹式方法給定預(yù)定義的機(jī)器學(xué)習(xí)算法,以分類算法為例,一個(gè)典型的包裹式方法將執(zhí)行以下步驟:1)搜索特征的子集。2)通過分類器的性能來評(píng)價(jià)所選擇的特征子集。3)重復(fù)步驟1和步驟2,直至達(dá)到某一條件。包裹式方法框架2.2.2包裹式方法機(jī)器學(xué)習(xí)算法中常用的包裹式方法1.RFE(RecursiveFeatureElimination)基本思想:RFE是一個(gè)經(jīng)典的包裹式方法,它使用一個(gè)機(jī)器學(xué)習(xí)模型來進(jìn)行多輪訓(xùn)練,每輪訓(xùn)練后,刪除掉若干個(gè)重要性低的特征,再基于新的特征集進(jìn)行下一輪訓(xùn)練,直到特征數(shù)滿足自己的設(shè)定。主要步驟:1)RFE通過首先在原始特征上訓(xùn)練模型(例如分類模型),并為每個(gè)特征指定一個(gè)權(quán)重系數(shù)。2)將擁有最小絕對(duì)值權(quán)重的特征將從特征集中被剔除。3)如此迭代遞歸,直至剩余的特征數(shù)量達(dá)到所需的特征數(shù)量2.2.2包裹式方法sklearn包中集成了RFE的函數(shù)實(shí)現(xiàn),如下述代碼:#加載數(shù)據(jù)fromsklearnimportdatasetsiris=datasets.load_iris()

#加載REF特征選擇函數(shù)和分類模型fromsklearn.feature_selectionimportRFEfromsklearn.linear_modelimportLogisticRegression#邏輯斯蒂分類模型

model=LogisticRegression()rfe=RFE(estimator=model,n_features_to_select=1,step=1)

rfemodel=rfe.fit_transform(iris.data,iris.target)2.2.2包裹式方法2.2. RFECV(RecursiveFeatureElimination-CrossValidation)RFECV是RFE的擴(kuò)展,它通過交叉驗(yàn)證的方式執(zhí)行RFE,以此來選擇最佳數(shù)量的特征。主要步驟:1)指定一個(gè)外部的機(jī)器學(xué)習(xí)算法,比如SVM分類算法(在下一章中會(huì)詳細(xì)介紹),通過該算法對(duì)所有特征子集進(jìn)行交叉驗(yàn)證,以評(píng)估學(xué)習(xí)器的性能損失。2)對(duì)于某個(gè)特征,如果減少特征會(huì)造成性能損失,那么將不會(huì)去除該特征。3)最終篩選得到的特征子集作為所挑選的特征。2.2.2包裹式方法sklearn包同樣提供了RFECV函數(shù)實(shí)現(xiàn)供直接調(diào)用,如下述代碼:fromsklearn.svmimportSVCfromsklearn.model_selectionimportStratifiedKFoldfromsklearn.feature_selectionimportRFECVfromsklearn.datasetsimportmake_classification#創(chuàng)建一個(gè)分類模型X,y=make_classification(n_samples=1000,n_features=25,n_informative=3,n_redundant=2,n_repeated=0,n_classes=2,n_clusters_per_class=1,random_state=0)svc=SVC(kernel="linear")#SVC線性分類模型#創(chuàng)建RFECV特征選擇模型,交叉驗(yàn)證使用roc_auc指標(biāo)評(píng)估特征rfecv=RFECV(estimator=svc,step=1,cv=StratifiedKFold(2),scoring='roc_auc',min_features_to_select=1)rfecv.fit(X,y)2.2.2包裹式方法案例(基于Paribas數(shù)據(jù)的包裹式方法應(yīng)用),詳細(xì)代碼見書和課程案例資源包。1.安裝sklearn以及mlxtend包,引入特征選擇相關(guān)庫函數(shù)2.導(dǎo)入數(shù)據(jù)以及預(yù)處理3.借助包裹式方法前向搜索特征子集

在該數(shù)據(jù)集中,所選擇的特征子集如下: Index(['v10','v14','v23','v34','v38','v45','v50','v61','v72','v129'],dtype='object')4.根據(jù)最終所選的特征子集驗(yàn)證算法性能該算法在訓(xùn)練集和測(cè)試集的性能指標(biāo)分別如下:Trainset:RandomForestsroc-auc:0.7209127288873236Testset:RandomForestsroc-auc:0.71488149019708462.2.3嵌入式方法基本思想嵌入式方法在學(xué)習(xí)器訓(xùn)練過程中自動(dòng)地進(jìn)行特征選擇,是一種將特征選擇與學(xué)習(xí)器訓(xùn)練完全融合的特征選擇方法,即將特征選擇融入學(xué)習(xí)器的優(yōu)化過程中。該方法先使用某些機(jī)器學(xué)習(xí)算法和模型進(jìn)行訓(xùn)練,得到各個(gè)特征的權(quán)重系數(shù)以判斷特征的優(yōu)劣,然后再進(jìn)行過濾。這種方式同時(shí)繼承了過濾式方法和包裹式方法的優(yōu)勢(shì),既同包裹式方法一樣與分類器有交互,又同過濾式方法一樣不需要迭代地評(píng)估特征集,因此計(jì)算效率高。嵌入式方法分類第一種是剪枝方法,它首先利用所有的特征來訓(xùn)練一個(gè)模型,然后試圖通過將相應(yīng)的系數(shù)降為0來消除一些特征。第二種是帶有內(nèi)置機(jī)制的模型用于特征選擇,如ID3和C4.5。第三種是帶有目標(biāo)函數(shù)的正則化模型,它能通過最小化擬合誤差使得特征系數(shù)足夠小甚至精確為零。

2.2.3嵌入式方法

2.2.3嵌入式方法

2.2.3嵌入式方法

2.2.3嵌入式方法

2.2.3嵌入式方法

2.2.3嵌入式方法

2.2.3嵌入式方法

2.2.3嵌入式方法3.ElasticNet正則ElasticNet正則是Ri

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論