版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
主講教師:王嬌嬌單
位:智能媒體技術(shù)研究院Python程序設(shè)計(jì)方法第12章機(jī)器學(xué)習(xí)入門(mén)第12章機(jī)器學(xué)習(xí)入門(mén)12.1機(jī)器學(xué)習(xí)基本概念12.2基于Python的機(jī)器學(xué)習(xí)實(shí)現(xiàn)工具12.3應(yīng)用實(shí)例:鳶尾花分類(lèi)第12章機(jī)器學(xué)習(xí)入門(mén)12.1機(jī)器學(xué)習(xí)基本概念12.1.1監(jiān)督學(xué)習(xí)1監(jiān)督學(xué)習(xí)算法在監(jiān)督學(xué)習(xí)算法中,用戶(hù)將成對(duì)的輸入和預(yù)期輸出提供給算法,算法會(huì)找到一種方法,根據(jù)給定輸入得出預(yù)期輸出結(jié)果;監(jiān)督學(xué)習(xí)問(wèn)題主要有兩種:分類(lèi)(classification)與回歸(regression)
分類(lèi)問(wèn)題:目標(biāo)是預(yù)測(cè)類(lèi)別標(biāo)簽(classlabel),這些標(biāo)簽屬于預(yù)定義的可選列表;
回歸問(wèn)題:目標(biāo)是預(yù)測(cè)一個(gè)連續(xù)值,比如根據(jù)教育水平、年齡和居住地來(lái)預(yù)測(cè)一個(gè)人的年收入等;通常可以根據(jù)輸出結(jié)果是否具有某種連續(xù)性來(lái)區(qū)分某一問(wèn)題是分類(lèi)任務(wù)和回歸任務(wù)。12.1.1監(jiān)督學(xué)習(xí)1監(jiān)督學(xué)習(xí)任務(wù)監(jiān)督學(xué)習(xí)任務(wù)的目標(biāo)就是構(gòu)建一個(gè)泛化精度盡可能高的模型
如果訓(xùn)練集和測(cè)試集足夠相似,那么可以預(yù)估在訓(xùn)練集上表現(xiàn)良好的模型在測(cè)試集上也能夠做出準(zhǔn)確預(yù)測(cè);
但在某些情況下,這一點(diǎn)并不成立。因?yàn)樵谟?xùn)練集上通過(guò)構(gòu)建非常復(fù)雜的模型從而使得它在訓(xùn)練集上的精度可以很高,但是它在測(cè)試集上的精度就不一定了;
模型過(guò)擬合
如果在訓(xùn)練模型時(shí)過(guò)分追求在訓(xùn)練集上的準(zhǔn)確性,那么會(huì)得到一個(gè)在訓(xùn)練集上表現(xiàn)很好、但不能泛化到新數(shù)據(jù)上的模型;模型欠擬合
如果模型過(guò)于簡(jiǎn)單,可能導(dǎo)致無(wú)法抓住數(shù)據(jù)的全部?jī)?nèi)容以及數(shù)據(jù)中的變化等特征,那么模型可能在訓(xùn)練集上的表現(xiàn)就很差;12.1.1監(jiān)督學(xué)習(xí)1監(jiān)督學(xué)習(xí)任務(wù)(續(xù))模型越復(fù)雜,在訓(xùn)練數(shù)據(jù)上的預(yù)測(cè)結(jié)果就越好。但是,模型如果過(guò)于復(fù)雜,即過(guò)多關(guān)注訓(xùn)練集中的每個(gè)單獨(dú)的數(shù)據(jù)點(diǎn),那么模型就不能很好地泛化到新數(shù)據(jù)上。兩者之間存在一個(gè)最佳的位置,可以使得模型得到最好的泛化性能。12.1.2無(wú)監(jiān)督學(xué)習(xí)1無(wú)監(jiān)督學(xué)習(xí)算法只有輸入數(shù)據(jù),需要從這些數(shù)據(jù)中提取知識(shí),一般用于不包含任何標(biāo)簽信息的數(shù)據(jù);
常見(jiàn)的無(wú)監(jiān)督學(xué)習(xí)任務(wù)如將客戶(hù)分成果具有相似偏好的群組、檢測(cè)網(wǎng)站的異常訪問(wèn)模式、確定文章的主題等;無(wú)監(jiān)督學(xué)習(xí)主要包含兩種類(lèi)型:數(shù)據(jù)集變換和聚類(lèi)
數(shù)據(jù)集的無(wú)監(jiān)督變換:
(1)創(chuàng)建一種新的數(shù)據(jù)表示算法,與數(shù)據(jù)的原始表示相比,新的表示可能更容易被人或其它機(jī)器學(xué)習(xí)算法所理解,比如常見(jiàn)的數(shù)據(jù)降維;
(2)找到“構(gòu)成”數(shù)據(jù)的各自組成部分,如對(duì)文本文檔集合進(jìn)行主題提取任務(wù),該任務(wù)是找到每個(gè)文檔中討論的主題,并學(xué)習(xí)每個(gè)文檔中出現(xiàn)了哪些主題;
12.1.2無(wú)監(jiān)督學(xué)習(xí)1無(wú)監(jiān)督學(xué)習(xí)算法(續(xù))無(wú)監(jiān)督學(xué)習(xí)主要包含兩種類(lèi)型:數(shù)據(jù)集變換和聚類(lèi)
聚類(lèi):
通過(guò)學(xué)習(xí)可以將數(shù)據(jù)根據(jù)其相似性劃分成不同的組,這些組叫做簇(cluster),即將相似的數(shù)據(jù)自動(dòng)劃分在一個(gè)簇中且不同簇內(nèi)的數(shù)據(jù)點(diǎn)差異較大;
使用不同的聚類(lèi)準(zhǔn)則,則產(chǎn)生的聚類(lèi)結(jié)果也不同。與分類(lèi)算法類(lèi)似,聚類(lèi)算法為每個(gè)數(shù)據(jù)點(diǎn)分配或預(yù)測(cè)一個(gè)數(shù)字,代表這一點(diǎn)屬于哪個(gè)簇;
常見(jiàn)的聚類(lèi)算法有k-均值聚類(lèi)、層次聚類(lèi)、DBSCAN等;
12.1.3數(shù)據(jù)表示與特征工程1數(shù)據(jù)表示:無(wú)論是監(jiān)督學(xué)習(xí)任務(wù)還是無(wú)監(jiān)督學(xué)習(xí)任務(wù),將輸入數(shù)據(jù)表征為計(jì)算機(jī)可以理解的形式尤為重要
通??梢詫?shù)據(jù)想象成表格的形式,將每一個(gè)數(shù)據(jù)點(diǎn)(每一封電子郵件、每一名客戶(hù)、每一次交易)看作對(duì)應(yīng)表格中的一行,描述該數(shù)據(jù)點(diǎn)的每一項(xiàng)屬性(如客戶(hù)年齡、交易金額、交易地點(diǎn))則對(duì)應(yīng)表格中的一列;
樣本:每個(gè)實(shí)體或每一行數(shù)據(jù)
特征:每一列(描述這些實(shí)體的屬性)
如果一個(gè)特征的值都是浮點(diǎn)數(shù),這類(lèi)特征稱(chēng)為連續(xù)特征,與之相對(duì)的就是離散特征,這類(lèi)特征通常不是數(shù)值而是表示類(lèi)別的值;
對(duì)于某個(gè)具體應(yīng)用來(lái)說(shuō),如何找到最佳數(shù)據(jù)表示,這個(gè)問(wèn)題被稱(chēng)為是特征工程,如對(duì)分類(lèi)變量進(jìn)行編碼;
第12章機(jī)器學(xué)習(xí)入門(mén)12.2基于Python的機(jī)器學(xué)習(xí)實(shí)現(xiàn)工具12.2.1scikit-learn庫(kù)的安裝和使用1scikit-learn無(wú)論是監(jiān)督學(xué)習(xí)任務(wù)還是無(wú)監(jiān)督學(xué)習(xí)任務(wù),將輸入數(shù)據(jù)表征為計(jì)算機(jī)可以理解的形式尤為重要一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)模塊,它通常建立在NumPy、SciPy和Pandas模塊之上。在安裝scikit-learn之前,需要先安裝好NumPy、SciPy和Pandas庫(kù)。如果已經(jīng)安裝了Python,可以用pip安裝工具安裝上述所有包。要使用pip工具在Windows系統(tǒng)上安裝軟件包,需打開(kāi)命令提示符窗口,然后鍵入以下格式的命令:pipinstall包名一旦完成,可以通過(guò)啟動(dòng)IDLE或者在Pycharm程序中輸入命令來(lái)驗(yàn)證包是否已經(jīng)安裝成功:
import包名12.2.2Numpy、SciPy和Pandas庫(kù)的使用1NumPyNumPy是Python科學(xué)計(jì)算的基礎(chǔ)包之一,功能包括多維數(shù)組、高級(jí)數(shù)學(xué)函數(shù),以及偽隨機(jī)數(shù)生成等。在scikit-learn中,NumPy數(shù)組是基本數(shù)據(jù)結(jié)構(gòu),通常scikit-learn接受NumPy數(shù)組格式的數(shù)據(jù),因此所有數(shù)據(jù)都必須轉(zhuǎn)換成NumPy數(shù)組。NumPy的核心功能是ndarray類(lèi),即多維(n維)數(shù)組。數(shù)組中所有元素都必須是同一類(lèi)型。NumPy數(shù)組如下所示:importnumpyasnpx=np.array([[1,2,3],[4,5,6]])print(x)上述程序輸出:[[123[456]]12.2.2Numpy、SciPy和Pandas庫(kù)的使用1SciPySciPy是Python中用于科學(xué)計(jì)算的函數(shù)集合,它具有線性代數(shù)高級(jí)程序、數(shù)學(xué)函數(shù)優(yōu)化、信號(hào)處理、特殊數(shù)學(xué)函數(shù)和統(tǒng)計(jì)分布等多項(xiàng)功能。scikit-learn利用SciPy中的函數(shù)集合來(lái)實(shí)現(xiàn)算法。SciPy中最重要的是scipy.sparse,它可以給出稀疏矩陣。當(dāng)保存一個(gè)大部分元素都是0的二維數(shù)組,可以使用稀疏矩陣;一般來(lái)說(shuō),創(chuàng)建稀疏數(shù)據(jù)的稠密表示是不可能的,大都是通過(guò)直接創(chuàng)建其稀疏表示。關(guān)于SciPy稀疏矩陣的更多內(nèi)容可查閱SciPy相關(guān)文檔(/);12.2.2Numpy、SciPy和Pandas庫(kù)的使用1PandasPandas適用于處理和分析數(shù)據(jù)的Python庫(kù),它基于一種叫做DataFrame的數(shù)據(jù)結(jié)構(gòu)。
一個(gè)pandasDataFrame可以看作是一張表格,類(lèi)似于Excel表格。Pandas中提供了大量用于修改表格和操作表格的方法,尤其是提供了許多類(lèi)似于SQL一樣對(duì)表中數(shù)據(jù)進(jìn)行查詢(xún)和連接的操作。
NumPy要求數(shù)組中的所有元素類(lèi)型必須完全相同,而Pandas則不需要。在PandasDataFrame中,每一列數(shù)據(jù)的類(lèi)型可以互不相同;
pandas還可以從許多文件格式和數(shù)據(jù)庫(kù)中提取數(shù)據(jù),如SQL、Excel和CSV文件;第12章機(jī)器學(xué)習(xí)入門(mén)12.3應(yīng)用實(shí)例:鳶尾花分類(lèi)12.3.1加載數(shù)據(jù)1應(yīng)用實(shí)例:鳶尾花分類(lèi)鳶尾花數(shù)據(jù)集:包括每朵鳶尾花的一些測(cè)量數(shù)據(jù),如花瓣的長(zhǎng)度和寬度以及花萼的長(zhǎng)度和寬度(單位:厘米)、每朵花所屬的品種;目標(biāo):通過(guò)學(xué)習(xí)這些已知品種的鳶尾花及其詳細(xì)的測(cè)量數(shù)據(jù)之間的關(guān)系,構(gòu)建一個(gè)機(jī)器學(xué)習(xí)模型,從而實(shí)現(xiàn)對(duì)一個(gè)新鳶尾花所屬品種的預(yù)測(cè);加載數(shù)據(jù)
該數(shù)據(jù)集是機(jī)器學(xué)習(xí)和統(tǒng)計(jì)學(xué)中一個(gè)經(jīng)典的數(shù)據(jù)集,它包含在scikit-learn的dataset模塊中,可以通過(guò)調(diào)用load_iris函數(shù)來(lái)加載數(shù)據(jù),如:
fromsklearn.datasetsimportload_iris
iris_datasets=load_iris()12.3.2模型評(píng)估:訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)1應(yīng)用實(shí)例:鳶尾花分類(lèi)訓(xùn)練數(shù)據(jù)(集):收集好的帶有標(biāo)簽的一部分?jǐn)?shù)據(jù)測(cè)試數(shù)據(jù)(集):收集好的帶有標(biāo)簽的剩余數(shù)據(jù),用來(lái)評(píng)估模型性能訓(xùn)練集和測(cè)試集的分割比例可以是隨意的,可根據(jù)具體問(wèn)題確定
該實(shí)例使用scikit-learn中提供的train_test_split函數(shù)可以將數(shù)據(jù)集打亂并重新拆分,按照75%和25%的比例:fromsklearn.model_selectionimporttrain_test_splitX_train,X_test,y_train,y_test=train_test_split(iris_datasets['data'],iris_datasets['target'],random_state=0)
其中,train_test_split函數(shù)在對(duì)數(shù)據(jù)進(jìn)行拆分之前,會(huì)利用偽隨機(jī)數(shù)生成器將數(shù)據(jù)集打亂順序,然后再按照比例進(jìn)行劃分;12.3.3分析數(shù)據(jù)1應(yīng)用實(shí)例:鳶尾花分類(lèi)在構(gòu)建機(jī)器學(xué)習(xí)模型之前,需要先分析一下數(shù)據(jù),看看如果不用機(jī)器學(xué)習(xí)能不能完成任務(wù),或者判斷需要的信息有沒(méi)有包含在數(shù)據(jù)中;分析數(shù)據(jù)還可以檢查數(shù)據(jù)是否存在異常值和特殊值。因?yàn)樵跀?shù)據(jù)收集過(guò)程中,可能會(huì)發(fā)生一些意想不到的數(shù)據(jù)記錄錯(cuò)誤;通常,可以采用可視化的方式對(duì)數(shù)據(jù)進(jìn)行分析,常用的方法是繪制散點(diǎn)圖(scatterplot)。數(shù)據(jù)散點(diǎn)圖將一個(gè)特征作為x軸,另一個(gè)特征作為y軸,將每一個(gè)數(shù)據(jù)點(diǎn)繪制為涂上的一個(gè)點(diǎn);12.3.4使用k近鄰算法構(gòu)建模型1應(yīng)用實(shí)例:鳶尾花分類(lèi)scikit-learn中提供了許多可用的分類(lèi)方法,該實(shí)例使用的是k近鄰分類(lèi)器構(gòu)建模型只需要使用訓(xùn)練集,當(dāng)要對(duì)一個(gè)新的數(shù)據(jù)點(diǎn)做出預(yù)測(cè)時(shí),k近鄰分類(lèi)器會(huì)在訓(xùn)練集中尋找與這個(gè)新數(shù)據(jù)點(diǎn)距離最近的數(shù)據(jù)點(diǎn),然后將找到的數(shù)據(jù)點(diǎn)的標(biāo)簽賦值給這個(gè)新數(shù)據(jù)點(diǎn);該算法中的k代表需要考慮訓(xùn)練集中與新數(shù)據(jù)點(diǎn)最近的任意k個(gè)鄰居而不是只考慮最近的那一個(gè),再根據(jù)這些鄰居中數(shù)量最多的類(lèi)別做出預(yù)測(cè);
Scikit-learn中提供的所有機(jī)器學(xué)習(xí)模型都在各自的類(lèi)中實(shí)現(xiàn),這些類(lèi)被稱(chēng)為Estimator類(lèi),比如k近鄰分類(lèi)算法是在neighbors模塊的KNeighborsClassifier類(lèi)中實(shí)現(xiàn)的;12.3.4使用k近鄰算法構(gòu)建模型1應(yīng)用實(shí)例:鳶尾花分類(lèi)(續(xù))代碼如下所示:
fromsklearn.neighborsimportKNeighborsClassifier
knn=KNeighborsClassifier(n_neighbors=1)
上述knn對(duì)象對(duì)算法進(jìn)行了封裝,既包括用訓(xùn)練數(shù)據(jù)構(gòu)建模型的算法,也包括對(duì)新數(shù)據(jù)點(diǎn)進(jìn)行預(yù)測(cè)的算法,同時(shí)還包括算法從訓(xùn)練數(shù)據(jù)中提取的信息。想要使用訓(xùn)練集構(gòu)建模型,需要調(diào)用knn對(duì)象的fit方法,輸入?yún)?shù)X_train和y_train,二者都是NumPy數(shù)組,前者是訓(xùn)練數(shù)據(jù),后者是其對(duì)應(yīng)的標(biāo)簽,使用方式如下所示:
knn.fit(X_train,y_train)12.3.5模型預(yù)測(cè)1應(yīng)用實(shí)例:鳶尾花分類(lèi)訓(xùn)練得到模型后,就可以使用該模型對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)了。
假如現(xiàn)在有一朵鳶尾花,花萼長(zhǎng)4.7cm寬3.1cm,花瓣長(zhǎng)1.3cm寬0.2cm,要預(yù)測(cè)這朵花屬于哪個(gè)品種?首先,需要將這些數(shù)據(jù)放在一個(gè)NumPy數(shù)組中:
X_new=np.array([[4.7,3.1,1.3,0.2]])然后通過(guò)以下語(yǔ)句調(diào)用knn對(duì)象的predict方法進(jìn)行預(yù)測(cè):prediction=knn.predict(X_new)12.3.6評(píng)估模型1應(yīng)用實(shí)例:鳶尾花分類(lèi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川托普信息技術(shù)職業(yè)學(xué)院2025-2026學(xué)年第二學(xué)期師資招聘?jìng)淇碱}庫(kù)及參考答案詳解
- 清華大學(xué)關(guān)于2026年度面向應(yīng)屆畢業(yè)生公開(kāi)招聘工作人員備考題庫(kù)及一套參考答案詳解
- 2025年保山市隆陽(yáng)區(qū)消防救援局公開(kāi)招聘財(cái)務(wù)人員的備考題庫(kù)完整參考答案詳解
- 2025年烏海市烏達(dá)區(qū)中小學(xué)校人才引進(jìn)備考題庫(kù)及完整答案詳解一套
- 2025年昆明市盤(pán)龍區(qū)匯承中學(xué)招聘教師備考題庫(kù)及1套完整答案詳解
- 大學(xué)生公共演講能力培養(yǎng)與網(wǎng)絡(luò)平臺(tái)的結(jié)合課題報(bào)告教學(xué)研究課題報(bào)告
- 2025年滄州市第四醫(yī)院招聘衛(wèi)生專(zhuān)業(yè)技術(shù)人員備考題庫(kù)及答案詳解1套
- 2025湖南長(zhǎng)沙市天心區(qū)龍灣小學(xué)教師招聘2人考試核心題庫(kù)及答案解析
- 2025廣東廣州生物院聯(lián)合生科院張笑人教授課題組科研助理招聘筆試重點(diǎn)試題及答案解析
- 數(shù)據(jù)安全維護(hù)管理承諾函范文6篇
- 2025-2026學(xué)年湘美版小學(xué)美術(shù)四年級(jí)(上冊(cè))期末測(cè)試卷附答案(4套)
- 2025年1月黑龍江省普通高中學(xué)業(yè)水平合格性考試物理試卷(含答案)
- 江西省三新協(xié)同體2025-2026年高一上12月思想政治試卷(含解析)
- 知識(shí)點(diǎn)及2025秋期末測(cè)試卷(附答案)-蘇教版(新教材)小學(xué)科學(xué)小學(xué)科學(xué)二年級(jí)上冊(cè)
- 2025安徽蕪湖市鳩江區(qū)人民醫(yī)院招聘工作人員21人筆試考試參考試題及答案解析
- 《城市軌道交通車(chē)站機(jī)電設(shè)備運(yùn)用》課件 項(xiàng)目三:站臺(tái)門(mén)系統(tǒng)
- 企業(yè)財(cái)務(wù)盡調(diào)咨詢(xún)服務(wù)合同
- 企業(yè)稅務(wù)規(guī)劃合規(guī)審查手冊(cè)
- 2026年山西工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)及答案解析(名師系列)
- 附件扭轉(zhuǎn)診治中國(guó)專(zhuān)家共識(shí)(2024年版)解讀
- 社區(qū)工作者社工面試題及答案解析
評(píng)論
0/150
提交評(píng)論