初中信息技術(shù)-Python編程-【機(jī)器學(xué)習(xí)識(shí)數(shù)字】_第1頁
初中信息技術(shù)-Python編程-【機(jī)器學(xué)習(xí)識(shí)數(shù)字】_第2頁
初中信息技術(shù)-Python編程-【機(jī)器學(xué)習(xí)識(shí)數(shù)字】_第3頁
初中信息技術(shù)-Python編程-【機(jī)器學(xué)習(xí)識(shí)數(shù)字】_第4頁
初中信息技術(shù)-Python編程-【機(jī)器學(xué)習(xí)識(shí)數(shù)字】_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、初中信息技術(shù)Python【機(jī)器學(xué)習(xí)識(shí)數(shù)字】如同蒸汽時(shí)代的蒸汽機(jī)、電氣時(shí)代的發(fā)電機(jī)、信息時(shí)代的計(jì)算機(jī)和互聯(lián)網(wǎng),當(dāng)前 我們所處的時(shí)代為人工智能的時(shí)代,提起人工智能就不得不提機(jī)器學(xué)習(xí),人工智能、 機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、大數(shù)據(jù),這些名詞是近年來提及最多的,想不想體驗(yàn)下機(jī) 器學(xué)習(xí)呢?作為機(jī)器學(xué)習(xí)領(lǐng)域冉冉升起的新星Python ,是初學(xué)者實(shí)現(xiàn)機(jī)器學(xué)習(xí)的 首選,那么什么是機(jī)器學(xué)習(xí)?用Python如何編寫機(jī)器程序?接下來讓開啟我們的機(jī)器 學(xué)習(xí)之旅吧!通過本章的學(xué)習(xí),你將掌握以下技能:*明確機(jī)器學(xué)習(xí)的概念*編寫程序識(shí)別數(shù)字專題一:機(jī)器學(xué)習(xí)初相識(shí)什么是機(jī)器學(xué)習(xí)?智能手機(jī)上的Siri個(gè)人智能助理、瀏覽器的新聞智能推薦

2、、購物 網(wǎng)站的好物推薦、常用的百度翻譯、微信小程序識(shí)花君這些存在于我們生活中的 應(yīng)用中都有機(jī)器學(xué)習(xí)的身影,所以機(jī)器學(xué)習(xí)并不遙遠(yuǎn),它就在我們身邊。什么是機(jī)器學(xué)習(xí)?機(jī)器學(xué)習(xí)是一類算法的總稱,這些算法試圖從大量歷史數(shù)據(jù)中挖掘出其中隱含的 規(guī)律,并用于預(yù)測或者分類,更具體的說,機(jī)器學(xué)習(xí)可以看作是尋找一個(gè)函數(shù),該函 數(shù)的輸入是樣本數(shù)據(jù),輸出的是期望的結(jié)果。其實(shí),機(jī)器學(xué)習(xí)的核心是使用算法解析 數(shù)據(jù)并從中學(xué)習(xí),然后對(duì)其他的輸入數(shù)據(jù)做出決定或預(yù)測。機(jī)器學(xué)習(xí)是人工智能的核 心,是使計(jì)算機(jī)具有智能的根本途徑。最早的機(jī)器學(xué)習(xí)算法可以追溯到20世紀(jì)初,到今天為止已經(jīng)過去了 100多年,經(jīng) 過一代又一代人的努力,誕生出

3、了大量經(jīng)典的方法。大致來說,機(jī)器學(xué)習(xí)算法按照學(xué)拓展閱讀人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)你是否也有這樣的疑惑:人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)這三個(gè)名詞之間到底有什么樣的聯(lián)系與區(qū)別?簡單來說,這三者呈現(xiàn)出同心圓關(guān)系,如下列圖所示:!同心圓的最外層是人工智能,人工智能”一詞最初于1956年的特茅斯會(huì)議:上提出,從提出概念到現(xiàn)在,先后出現(xiàn)過許多種實(shí)現(xiàn)思路和算法,人工智能是內(nèi)涵:十分廣泛的科學(xué),它由不同的領(lǐng)域組成,如機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺等等。!同心圓的中間層是機(jī)器學(xué)習(xí),屬于人工智能的一個(gè)子集,機(jī)器學(xué)習(xí)是一種數(shù)據(jù)!分析方法,互聯(lián)網(wǎng)的許多推薦算法、相關(guān)性排名算法,所依托的基礎(chǔ)就是機(jī)器學(xué):習(xí)。I同心圓的最內(nèi)層是深度

4、學(xué)習(xí),是機(jī)器學(xué)習(xí)中一種基于對(duì)數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的方I鞏固與提高1、影響機(jī)器學(xué)習(xí)模型預(yù)測效果的關(guān)鍵因素是()A、算法B、數(shù)據(jù)集C、測試數(shù)據(jù)D、計(jì)算機(jī)的性能2、通過編寫識(shí)別數(shù)字程序,你覺得K-NN算法屬于()A、有監(jiān)督學(xué)習(xí)B、無監(jiān)督學(xué)習(xí)D、強(qiáng)化學(xué)習(xí)C、半監(jiān)督學(xué)習(xí)習(xí)方式分類可分為有監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)。其中,有監(jiān)督 學(xué)習(xí)是機(jī)器學(xué)習(xí)算法中最為龐大的家族,誕生出了很多經(jīng)典的機(jī)器學(xué)習(xí)算法,比方基 于模板匹配思想的k-NN算法,因其簡單、有效的學(xué)習(xí)效果,至今仍在被使用?;诖髷?shù)據(jù)的機(jī)器學(xué)習(xí)為我們的生活帶了許多便利,正因?yàn)闄C(jī)器學(xué)習(xí)提供多種工 具可以利用數(shù)據(jù)來解決簡單規(guī)那么不能或者難以解決的

5、問題,它被廣泛應(yīng)用在了搜索引 擎、無人駕駛、機(jī)器翻譯、醫(yī)療診斷、垃圾郵件過濾、玩游戲、人臉識(shí)別、數(shù)據(jù)匹配、 信用評(píng)級(jí)和給圖片加濾鏡等任務(wù)中。無人駕駛垃圾信息過濾機(jī)器學(xué)習(xí)的過程為了進(jìn)一步了解機(jī)器學(xué)習(xí)的過程,我們可以先假設(shè)這樣一個(gè)需求:建立一個(gè)能夠 識(shí)別手寫數(shù)字的識(shí)別系統(tǒng)。我們要建立的這一識(shí)別系統(tǒng)被稱為模型,而此模型的 建立過程被稱為訓(xùn)練,訓(xùn)練的目的是創(chuàng)立出一個(gè)在絕大多數(shù)情況下能正確識(shí)別數(shù) 字圖片的精準(zhǔn)模型。那么我們要如何完成這個(gè)需求?簡單的說,我們需要經(jīng)歷的過程有數(shù)據(jù)、機(jī)器學(xué)習(xí)建立模型、輸入圖片預(yù)測 數(shù)字,具體如下列圖所示:待識(shí)別圖片數(shù)字圖片集機(jī)器學(xué)習(xí)特征模型識(shí)別結(jié)果1、數(shù)據(jù)。找到盡可能多的手寫

6、0-9數(shù)字圖片作為機(jī)器學(xué)習(xí)的樣本,在這一階 段我們還需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,比方對(duì)圖片進(jìn)行歸一化處理,以方便學(xué)習(xí)算法學(xué)習(xí), 提高機(jī)器學(xué)習(xí)算法的學(xué)習(xí)效果;2、機(jī)器學(xué)習(xí)。將之前的數(shù)據(jù)集分為訓(xùn)練集和測試集,隨后選擇機(jī)器學(xué)習(xí)算法 對(duì)訓(xùn)練集中的圖片提取特征值,將提取出的特征通過訓(xùn)練形成特征模型,并用測試集 的圖片檢驗(yàn)特征模型的識(shí)別效果;3、預(yù)測結(jié)果。將待識(shí)別的數(shù)字圖片輸入建立的特征模型并輸出識(shí)別結(jié)果。從以上過程中可以得知,最初的數(shù)據(jù)集決定了機(jī)器學(xué)習(xí)效果的上界,因此數(shù) 據(jù)集對(duì)于整個(gè)機(jī)器學(xué)習(xí)工程至關(guān)重要。通常來說,數(shù)據(jù)集越大越詳細(xì),機(jī)器學(xué)習(xí)的效 果越好。專題二:編寫程序識(shí)別數(shù)字在編寫程序識(shí)別數(shù)字時(shí),我們需要準(zhǔn)

7、備數(shù)據(jù)集以及選擇恰當(dāng)?shù)臋C(jī)器學(xué)習(xí)算法, Python中為我們提供了豐富的機(jī)器學(xué)習(xí)庫,本例中我們借助scikit-learn庫編寫數(shù)字識(shí) 別程序。2.1 scikit-learn 庫首先點(diǎn)擊海龜編輯器中的庫管理,在彈出的庫管理界面選擇人工智能,找到scikit- learn庫,點(diǎn)擊安裝即可。恭我爬蟲數(shù)據(jù)處理圖表數(shù)學(xué)計(jì)算圖像處理人-L色再匕sokit-unage是基于scipy的一款圖像處理包,它將圖片作為nump、數(shù)組進(jìn)行 處理,實(shí)現(xiàn)了豐富多樣的圖像處理算法。人工智能已安裝已安裝scikiMearn界面界面0m 8ab76am是機(jī)器學(xué)習(xí)領(lǐng)域的常用開源庫。我們可以使用5c面庫中的 機(jī)器學(xué)習(xí)算法接口,

8、簡單高效地進(jìn)行數(shù)據(jù)挖墀和數(shù)據(jù)分析。EasyguiEasygui是常見的GUI (Graphics User Interface,用戶圖形界面)庫,我們可Python中的scikit-learn庫整合了多種機(jī)器學(xué)習(xí)算法并提供了一些用于訓(xùn)練的數(shù)據(jù) 集,這對(duì)我們初學(xué)者來說是非常便利的。scikit-learn最初來是由David Cournapeau在 2007年開始開發(fā)的,目前scikit-learn已經(jīng)開展為一個(gè)由INRIA、Google、Tinyclues和 Python Software Foundation贊助的工程,長期活躍的貢獻(xiàn)者有30多人。既然scikit- learn庫中有現(xiàn)成的數(shù)

9、據(jù)集,那么要如何獲取呢?#s cikit-learn 數(shù)據(jù)集from sklearn.datasets import load_digitsdigits=load_digits()print(digits.keys()控制臺(tái)dict_keys(* data *, * target *, * frame *, * feature_names1, * target_names *, * images *, * DESCR*) 程序運(yùn)行結(jié)束程序中先將scikit-learn庫導(dǎo)入到Python中來,隨后執(zhí)行l(wèi)oad_digits()創(chuàng)立了數(shù)據(jù)集 對(duì)象digits , digits和字典型數(shù)據(jù)很相似,

10、包含了很多鍵值,其中data是輸入數(shù)據(jù)即圖 片數(shù)據(jù)、target是輸出數(shù)據(jù)即圖片對(duì)應(yīng)的數(shù)字、images是具體的圖片、DESCR描述了 數(shù)據(jù)集的整體信息。通過digits_keys()可以打印digits數(shù)據(jù)集包含的所有鍵值,為了了 解digits數(shù)據(jù)集的具體信息,執(zhí)行print(digitsDESCR)打印輸出數(shù)據(jù)集的整體信息, 控制臺(tái)輸出如下列圖所示:._digits_dataset:Optical recognition of handwritten digits datasetData Set Characteristics:*:Number of Instances: 5620:Nu

11、mber of Attributes: 64:Attribute Information: 8x8 image of integer pixels in the range 0.16.:Missing Attribute Values: None:Creator: E. Alpaydin (alpaydin ):Date: July; 1998從輸出中我們可以明確:scikit-learn庫中的數(shù)字圖片樣本有5620張,那么這些圖片長什么樣呢?# scikit-learn數(shù)據(jù)集from sklearn.datasets import load_digitsimport matplotlib.p

12、yplot as pitdigits = load_digits()for i in range(10):pit.subplot(2) 5, i+1)#不顯示坐標(biāo)軸pit.axis(off)pit . imshow(digits.imagesi)pit.title(標(biāo)簽:.format(digits.targeti)pit.rcParamsont.sans-serif1 = SimHeipit.show()標(biāo)簽:0標(biāo)簽:1 標(biāo)簽:2 標(biāo)簽:3 標(biāo)簽:4標(biāo)簽:0標(biāo)簽:1 標(biāo)簽:2 標(biāo)簽:3 標(biāo)簽:41Figure 1標(biāo)簽:5 標(biāo)簽:6 標(biāo)簽:7 標(biāo)簽:8 標(biāo)簽:9同嗎備*|圭0圖畫程序中通過fo

13、r循環(huán)遍歷并展示了 digits數(shù)據(jù)集的前10張圖片,在展示圖片時(shí),借 助了 Matplotlib中的pyplot將圖片依次展示,為了方便我們觀察圖片的輸出數(shù)據(jù),程序 中為每一張數(shù)字圖片添加了標(biāo)簽,標(biāo)簽的值就是digits數(shù)據(jù)集圖片所對(duì)應(yīng)的輸出數(shù)字。.2編寫程序識(shí)別數(shù)字有了數(shù)據(jù)集后,我們就可以編寫識(shí)別數(shù)字的程序了。第一步:劃分?jǐn)?shù)據(jù)集。我們需要將digits數(shù)據(jù)集中的圖片人為劃分成用于建立模型 的訓(xùn)練集和測試模型準(zhǔn)確性的測試集。在劃分時(shí),一般訓(xùn)練集占比在70%-90%的范圍 比擬合理。digits = load_digits()len_samples = len(digits.data)#褊入數(shù)

14、據(jù)和輸出數(shù)據(jù)分為訓(xùn)練集和測試集x_train = digits.data:int(0.75*len_samples)x_test = digits.dataint(0.75*len_samples):ystrain = digits.target:int(0.75*len_samples)y_test = digits.targetint(0.75*len_samples):程序中,我們?nèi)藶榈膶?shù)據(jù)集分為了訓(xùn)練集和測試集,其中訓(xùn)練集占輸入數(shù)據(jù)和 輸出數(shù)據(jù)的75% ,測試集占數(shù)據(jù)數(shù)據(jù)和輸出數(shù)據(jù)的25%。第二步:使用k-NN算法訓(xùn)練數(shù)據(jù),建立模型。k-NN算法又稱為k近鄰算法,是 一種使用距離表示

15、相似度的算法,也就是說兩個(gè)樣本的距離越近那么他們就越有可能 屬于同一個(gè)類別,一句話描述就是近朱者赤、近墨者黑,未分類的樣本K周邊哪 一類樣本多,那么該樣本就屬于哪一個(gè)分類。#機(jī)器識(shí)別識(shí)數(shù)字from sklearn.datasets import load_digitsimport matplotlib.pyplot as pit56785678from sklearn.neighbors import KNeighborsClassifierdigits = load_digits() len_samples = len(digits.data)# 褊入數(shù)據(jù)和輸出數(shù)據(jù)分為訓(xùn)練集和測試集x_tr

16、ain = digits.data:int(0.75*len_samples)x_test = digits.dataint(0.75*len_samples):ystrain = digits.target:int(0.75*len_samples)y_test = digits.targetint(0.75*len_samples):#使用KNN算法建立模型knn=KNeighborsClassifier(n_neighbors=l)knn.fit(x_train4y_train)要調(diào)用k-NN算法的函數(shù),我們需要先從scikit-learn庫中導(dǎo)入k-NN算法,隨后我 們調(diào)用KNeigh

17、borsClassifier。創(chuàng)立了對(duì)象knn f其中KNeighborsClassifier。的參數(shù)n_neighbors表示的是對(duì)分類結(jié)果有影響的最近鄰居 的個(gè)數(shù),程序中的取值為1;隨后借助fit。對(duì)測試集的輸入數(shù)據(jù)和輸出數(shù)據(jù)進(jìn)行訓(xùn)練并 建立模型。第三步:使用測試集檢測模型的準(zhǔn)確性,并輸出預(yù)測結(jié)果。在建立好模型后,我 們需要對(duì)模型的預(yù)測情況做檢測,通過輸入測試集的輸入數(shù)據(jù)進(jìn)行準(zhǔn)確率的計(jì)算。#進(jìn)行預(yù)測pred=knn.predict(x_test)print(測試集的預(yù)測結(jié)果:n.fomat(pred)print(測試集的準(zhǔn)確性為:.3f二format(knn.score(x_test,y_

18、test)控制臺(tái)測試集的預(yù)測結(jié)果:3 7 3 34 3 14466649150536961717632579546 7 19 0846665369634567227824631317 4 8 8 49 5 59 9 1 17 58 9 0 0 129 174 9 0 8 9 8 測試集的準(zhǔn)確性為6 3 139 0 9 96 5 0 95 0 9 54 4 7 212 5 46 3 8 76 8 4 50.9620 9 6 25 4 4 79 0 10 12 617 68 0 128 5 8 42 8 0 12 5 7 35 6 7 83 3 4 614 0 58 2 0 02 8 2 23 4

19、 53 7 38 4 3 13 4 5 617 7 37 6 3 25 9 4 59 0 9 56 6 4 93 6 9 6156 34751 051 17 77 401 1786576 3 2 9 5 48 9 0 6 6 65 3 6 9 0 1 0 0 29 6 3 9 8 05 0 9 0 9 55 4 41 7854 99 62 32 71 91 28 92 87 24 6 39 06 515 017 54 5 62 0173 4 58 4 12 0 08 2 21 300 954 49 01 26 8771 75 79 11 28 92 87 21 26 34 38 93 56 39 57 6 8 3 4 58 4 1 2 0 08 2 2 3 4 57 7 14 0 0 1210 0 2 178 1程序中調(diào)用predict。對(duì)建立的模型進(jìn)行了預(yù)測,并將預(yù)測的結(jié)果賦值給了變量pred , 隨后將測試集的所有測試結(jié)果打印輸出。為了明確預(yù)測的準(zhǔn)確性,我們調(diào)用了 score() 對(duì)模型進(jìn)行了準(zhǔn)確性評(píng)估,即計(jì)算模型的預(yù)測準(zhǔn)確率,scor

溫馨提示

  • 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)論