Python商務(wù)數(shù)據(jù)分析微課版高廣尚課后參考答案_第1頁(yè)
Python商務(wù)數(shù)據(jù)分析微課版高廣尚課后參考答案_第2頁(yè)
Python商務(wù)數(shù)據(jù)分析微課版高廣尚課后參考答案_第3頁(yè)
Python商務(wù)數(shù)據(jù)分析微課版高廣尚課后參考答案_第4頁(yè)
Python商務(wù)數(shù)據(jù)分析微課版高廣尚課后參考答案_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

初識(shí)Python本章習(xí)題一、選擇題1.(單選)在以下哪個(gè)領(lǐng)域中,Python的應(yīng)用較少?(D)A.Web開(kāi)發(fā)B.數(shù)據(jù)分析和科學(xué)計(jì)算C.人工智能和深度學(xué)習(xí)D.電子游戲開(kāi)發(fā)2.(單選)Python的哪個(gè)特點(diǎn)使得它易于學(xué)習(xí)和上手?(B)A.高執(zhí)行效率B.開(kāi)放源代碼C.編碼加密功能D.復(fù)雜的語(yǔ)法規(guī)則3.(單選)下列哪一項(xiàng)不是Python編程語(yǔ)言的關(guān)鍵特點(diǎn)?(C)A.簡(jiǎn)單語(yǔ)法B.動(dòng)態(tài)類(lèi)型C.執(zhí)行速度快D.成熟生態(tài)系統(tǒng)4.(單選)“pipinstall”命令在Python中用于做什么?(A)A.安裝第三方庫(kù)B.運(yùn)行Python腳本C.打印Python版本D.打開(kāi)IPythonshell5.(單選)Python源代碼文件的典型文件擴(kuò)展名是什么?(A)A..pyB..pycC..cppD..exe二、判斷題1.Python是一種解釋型腳本語(yǔ)言,可以在Windows、MacOSX和Linux等操作系統(tǒng)中運(yùn)行。(正確)2.Python解釋器通常被稱(chēng)為CPython,是用Java語(yǔ)言實(shí)現(xiàn)的。(錯(cuò)誤)3.Python擁有貧弱的生態(tài)系統(tǒng)和有限的庫(kù)。(錯(cuò)誤)4.Python是一種解釋型腳本語(yǔ)言,代碼需要先編譯成機(jī)器碼才能運(yùn)行。(錯(cuò)誤)5.Python是一種動(dòng)態(tài)類(lèi)型語(yǔ)言,變量可以重新綁定不同類(lèi)型的值。(正確)實(shí)訓(xùn)Python編程的基礎(chǔ)知識(shí),包括Python簡(jiǎn)介、開(kāi)發(fā)環(huán)境、安裝和編寫(xiě)簡(jiǎn)單程序等。一、實(shí)訓(xùn)目的通過(guò)這個(gè)實(shí)訓(xùn),讀者將掌握在Windows系統(tǒng)下安裝Python解釋器、編寫(xiě)和運(yùn)行Python程序的基本步驟。二、實(shí)訓(xùn)步驟步驟1:準(zhǔn)備工作下載并安裝Python3.11.2解釋器,推薦64位版本。下載并安裝VisualStudioCode等文本編輯工具。步驟2:編寫(xiě)Python程序使用VisualStudioCode等文本編輯工具創(chuàng)建一個(gè)名為“hello.py”的文件,并輸入以下代碼。Python#這是一個(gè)簡(jiǎn)單的Python程序#定義一個(gè)變量name="小明"#打印變量的值print("Hello,"+name+"!")步驟3:運(yùn)行Python程序打開(kāi)命令提示符,并切換到“hello.py”文件所在的目錄。輸入以下命令運(yùn)行程序pythonhello.py。pythonhello.py通過(guò)該實(shí)訓(xùn),讀者快速入門(mén)Python編程,并掌握Python的基礎(chǔ)知識(shí)和開(kāi)發(fā)環(huán)境配置。Python開(kāi)發(fā)工具本章習(xí)題一、選擇題1.(單選)VSCode是由以下哪家公司開(kāi)發(fā)的跨平臺(tái)代碼編輯器,支持多種語(yǔ)言,包括Python?()A.AppleB.GoogleC.MicrosoftD.Adobe2.(單選)以下哪個(gè)選項(xiàng)不是VSCode的主要特點(diǎn)?()A.開(kāi)放源代碼B.內(nèi)置調(diào)試器C.僅支持JavaScript語(yǔ)言D.支持多種編程語(yǔ)言3.(單選)通過(guò)安裝Python插件,可以在VSCode中進(jìn)行以下哪項(xiàng)操作?()A.閱讀PDF文件B.編寫(xiě)和運(yùn)行Python代碼C.3D建模D.視頻編輯4.(多選)以下哪些是VisualStudioCode(VSCode)的主要特點(diǎn)?(ABD)A.開(kāi)放源代碼B.支持多種編程語(yǔ)言,包括PythonC.具有內(nèi)置的圖像編輯功能D.提供強(qiáng)大的編輯功能,如自動(dòng)完成和代碼片段5.(多選)以下關(guān)于JupyterNotebook的描述中,哪些是正確的?(BD)A.JupyterNotebook支持多種編程語(yǔ)言,但不包括PythonB.在JupyterNotebook中,代碼和markdown內(nèi)容可以在同一個(gè)文件中交替編寫(xiě)C.JupyterNotebook不允許添加新的代碼cell或markdowncellD.JupyterNotebook中可以在每個(gè)cell中運(yùn)行代碼并查看結(jié)果二、簡(jiǎn)答題什么是Python中的解釋型語(yǔ)言?簡(jiǎn)要說(shuō)明解釋型語(yǔ)言與編譯型語(yǔ)言的區(qū)別,并舉例說(shuō)明Python為何被稱(chēng)為解釋型語(yǔ)言。答案:解釋型語(yǔ)言是一種在運(yùn)行時(shí)逐行解釋并執(zhí)行程序代碼的語(yǔ)言。與之相對(duì),編譯型語(yǔ)言在運(yùn)行之前需要將整個(gè)程序代碼編譯成機(jī)器碼或中間代碼,然后由計(jì)算機(jī)直接執(zhí)行。區(qū)別:解釋型語(yǔ)言:在運(yùn)行時(shí)逐行解釋執(zhí)行代碼,不需要獨(dú)立的編譯過(guò)程。適合開(kāi)發(fā)迅速,但通常比編譯型語(yǔ)言執(zhí)行速度較慢。編譯型語(yǔ)言:在運(yùn)行之前將代碼完全編譯成機(jī)器碼或中間代碼,執(zhí)行速度較快。但開(kāi)發(fā)周期可能較長(zhǎng),需要經(jīng)過(guò)編譯過(guò)程。Python被稱(chēng)為解釋型語(yǔ)言,因?yàn)樗拇a不需要事先編譯,而是通過(guò)Python解釋器逐行執(zhí)行。Python解釋器會(huì)在運(yùn)行時(shí)將代碼翻譯成機(jī)器碼,然后執(zhí)行。這種方式使得開(kāi)發(fā)者可以更快速地進(jìn)行開(kāi)發(fā)和測(cè)試,但也導(dǎo)致相對(duì)較低的執(zhí)行效率。Python的動(dòng)態(tài)類(lèi)型和強(qiáng)大的反射機(jī)制也是解釋型語(yǔ)言的特點(diǎn)之一,使得代碼更靈活。實(shí)訓(xùn)打開(kāi)VSCode編輯器,配置常用的編輯器設(shè)置,如字體大小、制表符寬度、自動(dòng)換行、顯示行號(hào)等。(1)實(shí)訓(xùn)目的通過(guò)這個(gè)實(shí)訓(xùn),學(xué)生將學(xué)會(huì)使用VSCode編輯器的基本設(shè)置功能,使編輯器適合他們的工作風(fēng)格和需求。他們將了解如何自定義字體大小、制表符寬度、自動(dòng)換行和行號(hào)等常用的編輯器設(shè)置。(2)實(shí)訓(xùn)步驟步驟1:下載并安裝VSCode編輯器首先,確保學(xué)生已經(jīng)下載并安裝了VSCode編輯器。他們可以從官方網(wǎng)站/下載適用于自己操作系統(tǒng)的版本。步驟2:打開(kāi)VSCode編輯器打開(kāi)已安裝的VSCode編輯器。步驟3:配置編輯器設(shè)置點(diǎn)擊左上角的"文件(File)"菜單,然后選擇“首選項(xiàng)(Preferences)”,再選擇"設(shè)置(Settings)",這將打開(kāi)設(shè)置面板。在此面板中,可以配置各種編輯器設(shè)置。{//設(shè)置字體大小"editor.fontSize":14,//設(shè)置制表符寬度為4個(gè)空格"editor.tabSize":4,//自動(dòng)換行"editor.wordWrap":"on",//顯示行號(hào)"editor.lineNumbers":"on"}在設(shè)置面板中,你可以搜索特定的設(shè)置項(xiàng),然后根據(jù)需要進(jìn)行自定義。步驟4:配置其他常用設(shè)置在編輯器設(shè)置中,還可以根據(jù)個(gè)人偏好配置其他設(shè)置,如主題顏色、代碼折疊、拼寫(xiě)檢查等。步驟5:創(chuàng)建一個(gè)Python文件,并編寫(xiě)簡(jiǎn)單的代碼在VSCode中,點(diǎn)擊左上角的“文件(File)”菜單,選擇“新建文件(NewFile)”,然后保存為“.py”后綴的文件,如“example.py”。在新創(chuàng)建的Python文件中,編寫(xiě)一段簡(jiǎn)單的代碼,例如:print("Hello,VSCode!")步驟6:運(yùn)行Python代碼并查看輸出結(jié)果在Python文件中,右鍵單擊并選擇“運(yùn)行Python文件(RunPythonFileinTerminal)”,可以在終端中看到代碼的輸出結(jié)果。通過(guò)這個(gè)實(shí)訓(xùn),學(xué)生將熟悉如何配置VSCode編輯器的基本設(shè)置,以適應(yīng)自己的工作風(fēng)格。他們還可以通過(guò)編寫(xiě)和運(yùn)行簡(jiǎn)單的Python代碼,加深對(duì)編輯器的使用。Python編程基礎(chǔ)本章習(xí)題一、選擇題1.(單選)以下Python代碼的輸出結(jié)果是什么?(B)a=10b=20print(a+b)A.1020B.30C.a+bD.以上都不是2.(單選)下列哪一項(xiàng)不是Python的核心數(shù)據(jù)結(jié)構(gòu)?(C)A.列表B.字典C.數(shù)組D.元組3.(單選)在Python中如何定義一個(gè)函數(shù)?(A)A.def函數(shù)():B.函數(shù){}C.函數(shù)()D.define函數(shù)():4.(多選)Python變量可以保存哪些數(shù)據(jù)類(lèi)型?(ABCD)A.整數(shù)B.字符串C.浮點(diǎn)數(shù)D.布爾值5.(多選)下列哪些是Python中的循環(huán)語(yǔ)句?(BC)A)ifB.forC.whileD.switch1.Python是一種靜態(tài)類(lèi)型語(yǔ)言。(錯(cuò)誤)2.and、or、not是Python中的邏輯運(yùn)算符。(正確)3.Python函數(shù)可以返回多個(gè)值。(正確)4.Python有switch-case語(yǔ)句。(錯(cuò)誤)5.導(dǎo)入模塊可以使用其中的函數(shù)。(正確)二、判斷題1.Python是一種靜態(tài)類(lèi)型語(yǔ)言。(錯(cuò)誤)2.and、or、not是Python中的邏輯運(yùn)算符。(正確)3.Python函數(shù)可以返回多個(gè)值。(正確)4.Python有switch-case語(yǔ)句。(錯(cuò)誤)5.導(dǎo)入模塊可以使用其中的函數(shù)。(正確)習(xí)題1:請(qǐng)編寫(xiě)一個(gè)Python程序,實(shí)現(xiàn)以下功能:輸入一個(gè)商品的價(jià)格和數(shù)量,計(jì)算出總價(jià),并輸出“總價(jià)為xxx元”。答案:price=float(input("請(qǐng)輸入商品價(jià)格:"))quantity=int(input("請(qǐng)輸入商品數(shù)量:"))total=price*quantityprint("總價(jià)為%.2f元"%total)運(yùn)行結(jié)果:請(qǐng)輸入商品價(jià)格:12.5請(qǐng)輸入商品數(shù)量:3總價(jià)為37.50元習(xí)題2:請(qǐng)編寫(xiě)一個(gè)Python程序,實(shí)現(xiàn)以下功能:輸入一個(gè)員工的基本工資和績(jī)效評(píng)分,計(jì)算出實(shí)際工資,并輸出“實(shí)際工資為xxx元”。答案:salary=float(input("請(qǐng)輸入基本工資:"))rating=float(input("請(qǐng)輸入績(jī)效評(píng)分:"))bonus=salary*ratingtotal=salary+bonusprint("實(shí)際工資為%.2f元"%total)運(yùn)行結(jié)果:請(qǐng)輸入基本工資:5000請(qǐng)輸入績(jī)效評(píng)分:1.2實(shí)際工資為6000.00元習(xí)題3:請(qǐng)編寫(xiě)一個(gè)Python程序,實(shí)現(xiàn)以下功能:輸入一個(gè)訂單的總金額和折扣率,計(jì)算出折扣后的金額,并輸出“折扣后的金額為xxx元”。答案:total=float(input("請(qǐng)輸入訂單總金額:"))discount=float(input("請(qǐng)輸入折扣率:"))amount=total*discountprint("折扣后的金額為%.2f元"%amount)運(yùn)行結(jié)果:請(qǐng)輸入訂單總金額:1000請(qǐng)輸入折扣率:0.8折扣后的金額為800.00元實(shí)訓(xùn)輸入一個(gè)員工的基本工資和績(jī)效評(píng)分,計(jì)算出實(shí)際工資,并輸出“實(shí)際工資為xxx元”。(1)實(shí)訓(xùn)目的通過(guò)這個(gè)實(shí)訓(xùn),學(xué)生將學(xué)會(huì)如何編寫(xiě)一個(gè)Python程序,用于根據(jù)員工的基本工資和績(jī)效評(píng)分計(jì)算實(shí)際工資。他們將學(xué)習(xí)輸入數(shù)據(jù)、條件判斷和簡(jiǎn)單計(jì)算的基本編程概念。(2)實(shí)訓(xùn)步驟步驟1:獲取員工基本工資和績(jī)效評(píng)分使用input函數(shù)獲取用戶輸入的員工基本工資和績(jī)效評(píng)分。 basic_salary=float(input("請(qǐng)輸入員工的基本工資:"))performance_score=float(input("請(qǐng)輸入員工的績(jī)效評(píng)分:"))步驟2:計(jì)算實(shí)際工資根據(jù)輸入的績(jī)效評(píng)分,計(jì)算實(shí)際工資。假設(shè)績(jī)效評(píng)分在0到1之間,實(shí)際工資為基本工資乘以績(jī)效評(píng)分。actual_salary=basic_salary*performance_score步驟3:輸出結(jié)果使用print函數(shù)輸出計(jì)算得到的實(shí)際工資。print(f"實(shí)際工資為{actual_salary}元")步驟4:運(yùn)行程序?qū)⒁陨喜襟E的代碼整合在一起,運(yùn)行程序。在終端中輸入員工的基本工資和績(jī)效評(píng)分,程序?qū)⒂?jì)算實(shí)際工資并輸出結(jié)果。通過(guò)這個(gè)實(shí)訓(xùn),學(xué)生將學(xué)會(huì)如何編寫(xiě)一個(gè)簡(jiǎn)單的Python程序,進(jìn)行輸入、條件判斷和計(jì)算操作。這將幫助他們理解基本的編程概念和程序邏輯。NumPy數(shù)據(jù)分析本章習(xí)題(一)單選題在NumPy中,如何創(chuàng)建一個(gè)全為0的數(shù)組?A.np.zeros((3,3))B.np.ones((3,3))C.np.empty((3,3))D.np.eye(3)答案:A在NumPy中,如何計(jì)算兩個(gè)數(shù)組的點(diǎn)積?A.np.dot(a,b)B.a*bC.np.cross(a,b)D.np.add(a,b)答案:A在NumPy中,如何獲取數(shù)組的形狀?A.a.shapeB.a.ndimC.a.sizeD.a.dtype答案:A在NumPy中,如何獲取數(shù)組中的最大值和最小值?A.np.max(a)和np.min(a)B.a.max()和a.min()C.np.maximum(a)和np.minimum(a)D.a.maximum()和a.minimum()答案:B在NumPy中,如何將兩個(gè)數(shù)組按照列方向進(jìn)行拼接?A.np.concatenate((a,b),axis=0)B.np.concatenate((a,b),axis=1)C.np.vstack((a,b))D.np.hstack((a,b))答案:D(二)多選題在NumPy中,以下哪些函數(shù)可以用于創(chuàng)建隨機(jī)數(shù)組?A.np.random.rand()B.np.random.randn()C.np.random.randint()D.np.random.choice()答案:A、B、C、D在NumPy中,以下哪些函數(shù)可以用于對(duì)數(shù)組進(jìn)行排序?A.np.sort()B.np.argsort()C.np.partition()D.np.searchsorted()答案:A、B、C二、判斷題1.NumPy中的ndarray對(duì)象代表多維數(shù)組。(正確)2.在NumPy數(shù)組中,負(fù)索引表示從末尾開(kāi)始計(jì)數(shù)。(正確)3.NumPy中的broadcasting允許不同形狀的數(shù)組進(jìn)行運(yùn)算。(正確)4.NumPy只支持?jǐn)?shù)值類(lèi)型,不支持字符串類(lèi)型。(錯(cuò)誤)5.axis參數(shù)用于指定數(shù)組運(yùn)算的方向。(正確)實(shí)訓(xùn) 統(tǒng)計(jì)不同區(qū)域本月的銷(xiāo)售額,求出各區(qū)域的銷(xiāo)售總額。一、實(shí)訓(xùn)目的通過(guò)這個(gè)實(shí)訓(xùn),讀者將熟練使用Numpy統(tǒng)計(jì)和分析業(yè)務(wù)數(shù)據(jù),掌握數(shù)組操作的方法。二、實(shí)訓(xùn)步驟步驟1:導(dǎo)入Numpy模塊首先導(dǎo)入NumPy模塊。importnumpyasnp步驟2:創(chuàng)建銷(xiāo)售額數(shù)組定義一個(gè)形狀為(3,4)的二維數(shù)組,表示3個(gè)區(qū)域4個(gè)城市的銷(xiāo)售額。sales=np.array([[1500,2000,1600,2200],[3000,3500,3200,3400],[0,0,0,0]])步驟3:求區(qū)域銷(xiāo)售總額將每個(gè)區(qū)域的4個(gè)城市銷(xiāo)售額相加,賦值給對(duì)應(yīng)的第3行元素。sales[2,:]=sales[0,:]+sales[1,:]步驟4:輸出結(jié)果打印第3行元素,查看每個(gè)區(qū)域的銷(xiāo)售總額。print(sales[2,:])通過(guò)該實(shí)訓(xùn),讀者可以掌握使用Numpy進(jìn)行商務(wù)數(shù)據(jù)統(tǒng)計(jì)的方法。Pandas數(shù)據(jù)分析本章習(xí)題一、選擇題1.(單選)Pandas的主要作用是什么?(B)A.圖像處理B.數(shù)據(jù)分析C.網(wǎng)絡(luò)編程D.前端開(kāi)發(fā)2.(單選)Pandas中的兩個(gè)主要數(shù)據(jù)結(jié)構(gòu)分別是什么?(D)A.Array和FrameB.Series和ArrayC.DataFrame和MatrixD.Series和DataFrame3.(單選)在Pandas中,哪個(gè)函數(shù)用于讀取CSV文件?(A)A.read_csv()B.load_csv()C.import_csv()D.open_csv()4.(多選)Pandas中的Series對(duì)象代表的是?(AD)A.一維數(shù)組B.二維數(shù)組C.表格D.列表5.(多選)下列哪些是Pandas中的數(shù)據(jù)清洗方法?(ABC)A.去重B.填充缺失值C.類(lèi)型轉(zhuǎn)換D.分組二、判斷題1.Pandas只能處理結(jié)構(gòu)化數(shù)據(jù),不能處理非結(jié)構(gòu)化數(shù)據(jù)。(錯(cuò)誤)2.使用Pandas,可以通過(guò).groupby()方法進(jìn)行數(shù)據(jù)分組,然后通過(guò)聚合函數(shù)對(duì)分組后的數(shù)據(jù)進(jìn)行匯總統(tǒng)計(jì)。(正確)3.Pandas的主要功能是進(jìn)行圖像處理和計(jì)算機(jī)視覺(jué)任務(wù)。(錯(cuò)誤)。4.Series對(duì)象中的值必須為數(shù)字類(lèi)型。(錯(cuò)誤)5.Pandas沒(méi)有時(shí)間序列處理功能。(錯(cuò)誤)三、填空題1.Pandas提供了快速、靈活、強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)和豐富的函數(shù)和方法,能夠簡(jiǎn)單、直觀地處理各種復(fù)雜的數(shù)據(jù),是Python數(shù)據(jù)分析的必備___高級(jí)工具_(dá)____工具。2.Pandas中的兩個(gè)常用的數(shù)據(jù)結(jié)構(gòu)是___Series_____和___DataFrame_____。3.使用Pandas讀取CSV文件的函數(shù)是____read_csv()____。4.在Pandas中,通過(guò)調(diào)用df.head()方法,可以查看DataFrame的前幾行數(shù)據(jù),默認(rèn)是前____5____行。5.在Pandas中,使用.groupby()方法進(jìn)行數(shù)據(jù)分組后,可以使用聚合函數(shù)如__sum______、____mean____等對(duì)分組后的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)計(jì)算。四、計(jì)算題1.假設(shè)有以下PandasDataFrame,名為sales_data,表示某公司的銷(xiāo)售數(shù)據(jù):MonthSales0110012150231203418045200請(qǐng)計(jì)算并輸出銷(xiāo)售額的平均值。答案:平均銷(xiāo)售額=(100+150+120+180+200)/5=1502.假設(shè)有以下兩個(gè)PandasDataFrame,df1和df2:df1:IDScore018512902375df2:IDAge012512302428請(qǐng)合并這兩個(gè)DataFrame,以ID列為鍵,輸出合并后的結(jié)果。答案:合并后的結(jié)果為:IDScoreAge0185251290302375NaN34NaN28實(shí)訓(xùn)統(tǒng)計(jì)不同季度各產(chǎn)品的銷(xiāo)售額,匯總生成銷(xiāo)售透視表。一、實(shí)訓(xùn)目的通過(guò)這個(gè)實(shí)訓(xùn),讀者將熟練使用Pandas進(jìn)行商務(wù)數(shù)據(jù)分析,掌握分組聚合等高級(jí)技巧。準(zhǔn)備銷(xiāo)售明細(xì)數(shù)據(jù)sales.csv,數(shù)據(jù)內(nèi)容如下:季度產(chǎn)品銷(xiāo)售額01季度手機(jī)250011季度電腦300022季度手機(jī)200032季度電腦350043季度手機(jī)300053季度電腦4000二、實(shí)訓(xùn)步驟步驟1:導(dǎo)入Pandas庫(kù)首先,確保讀者已經(jīng)導(dǎo)入了Pandas庫(kù)。步驟2:讀取銷(xiāo)售明細(xì)表使用Pandas的read_csv函數(shù)讀取CSV文件中的數(shù)據(jù)。df=pd.read_csv("sales.csv")步驟3:分組聚合使用groupby()按季度和產(chǎn)品分組,求銷(xiāo)售額sum()。df_grouped=df.groupby(['季度','產(chǎn)品'])['銷(xiāo)售額'].sum()步驟4:生成透視表使用pivot_table()生成季度產(chǎn)品銷(xiāo)售透視表。table=df_grouped.unstack(level=0)步驟5:打印結(jié)果打印透視表,展示每個(gè)季度不同產(chǎn)品的銷(xiāo)售規(guī)模。產(chǎn)品手機(jī)電腦季度1季度250030002季度200035003季度30004000通過(guò)這個(gè)實(shí)訓(xùn),讀者將學(xué)會(huì)如何使用Pandas庫(kù)進(jìn)行高級(jí)數(shù)據(jù)操作,包括數(shù)據(jù)分組聚合、透視表等。這將幫助他們更深入地從數(shù)據(jù)中獲取有價(jià)值的信息。Matplotlib數(shù)據(jù)繪圖本章習(xí)題一、選擇題1.(單選)Matplotlib通常與哪些庫(kù)一起使用,是數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)工作者必不可少的工具?(C)A.Scikit-learnB.TensorFlowC.NumPyD.PyTorch2.(單選)Matplotlib中的對(duì)象可以分為哪兩類(lèi)?(A)A.容器類(lèi)和基礎(chǔ)類(lèi)B.圖表類(lèi)和坐標(biāo)類(lèi)C.數(shù)據(jù)類(lèi)和屬性類(lèi)D.函數(shù)類(lèi)和對(duì)象類(lèi)3.(單選)下列哪個(gè)方法用于創(chuàng)建一個(gè)新的圖或畫(huà)布?(C)A.plt.create()B.plt.new_figure()C.plt.figure()D.plt.plot()4.(多選)Matplotlib可以繪制哪些類(lèi)型的圖表?(ABD)A.折線圖B.散點(diǎn)圖C.雷達(dá)圖D.箱線圖5.(多選)調(diào)整Matplotlib圖形中文字體的方法有哪些?(AC)A.設(shè)置全局字體B.保存為svg格式C.使用中文字體D.設(shè)置軸標(biāo)題字體一、判斷題1.Matplotlib是一個(gè)用于3D圖形繪制的Python庫(kù)。(錯(cuò)誤)2.在Matplotlib中,基于面向?qū)ο蟮睦L圖方式可以使用pyplot模塊中的函數(shù)進(jìn)行繪圖。(正確)3.使用subplot()函數(shù)時(shí),可以通過(guò)傳遞三個(gè)整數(shù)來(lái)設(shè)置子圖的行數(shù)、列數(shù)和當(dāng)前位置。(正確)4.子圖間共享x軸和y軸。(正確)5.餅圖主要用于展示時(shí)間序列數(shù)據(jù)。(錯(cuò)誤)三、繪制圖形題1.請(qǐng)繪制一個(gè)簡(jiǎn)單的折線圖,橫軸表示時(shí)間,縱軸表示溫度。假設(shè)有以下數(shù)據(jù)點(diǎn):時(shí)間:[0,1,2,3,4,5]溫度:[20,22,25,23,21,18]答案:導(dǎo)入Matplotlib庫(kù)。創(chuàng)建一個(gè)新的圖形對(duì)象。使用plt.plot()函數(shù)繪制折線圖,傳入時(shí)間和溫度數(shù)據(jù)。設(shè)置橫軸標(biāo)簽、縱軸標(biāo)簽和圖標(biāo)題。使用plt.show()顯示繪制的圖形。繪制代碼示例:importmatplotlib.pyplotasplttime=[0,1,2,3,4,5]temperature=[20,22,25,23,21,18]plt.plot(time,temperature,marker='o')plt.xlabel('時(shí)間')plt.ylabel('溫度')plt.title('溫度變化折線圖')plt.show()2.使用Matplotlib繪制一個(gè)分組柱狀圖,展示兩組數(shù)據(jù)在不同季節(jié)的銷(xiāo)售情況。假設(shè)有以下數(shù)據(jù):季節(jié):['春季','夏季','秋季','冬季']銷(xiāo)售A組:[100,150,130,110]銷(xiāo)售B組:[120,140,125,105答案:導(dǎo)入Matplotlib庫(kù)。創(chuàng)建一個(gè)新的圖形對(duì)象。使用plt.bar()函數(shù)分別繪制銷(xiāo)售A組和銷(xiāo)售B組的柱狀圖。設(shè)置橫軸標(biāo)簽、縱軸標(biāo)簽和圖標(biāo)題。使用plt.legend()設(shè)置圖例。使用plt.show()顯示繪制的圖形。importmatplotlib.pyplotaspltimportnumpyasnpseasons=['春季','夏季','秋季','冬季']sales_A=[100,150,130,110]sales_B=[120,140,125,105]x=np.arange(len(seasons))width=0.4fig,ax=plt.subplots()ax.bar(x-width/2,sales_A,width,label='銷(xiāo)售A組')ax.bar(x+width/2,sales_B,width,label='銷(xiāo)售B組')ax.set_xlabel('季節(jié)')ax.set_ylabel('銷(xiāo)售額')ax.set_title('銷(xiāo)售A組和銷(xiāo)售B組季節(jié)銷(xiāo)售情況')ax.set_xticks(x)ax.set_xticklabels(seasons)ax.legend()plt.show()實(shí)訓(xùn)使用Matplotlib可視化某公司不同區(qū)域的銷(xiāo)售和利潤(rùn)情況。一、實(shí)訓(xùn)目的通過(guò)這個(gè)實(shí)訓(xùn),讀者將學(xué)習(xí)使用Matplotlib可視化分析商業(yè)數(shù)據(jù),如不同區(qū)域的銷(xiāo)售業(yè)績(jī)數(shù)據(jù)??梢暬梢愿庇^地展示數(shù)據(jù)趨勢(shì)和模式,有助于商業(yè)決策。二、實(shí)訓(xùn)步驟步驟1:導(dǎo)入Matplotlib庫(kù)導(dǎo)入庫(kù),為繪制圖表做準(zhǔn)備。步驟2:準(zhǔn)備業(yè)務(wù)數(shù)據(jù)整理不同區(qū)域的銷(xiāo)售業(yè)績(jī)數(shù)據(jù),作為圖表的數(shù)據(jù)源。步驟3:繪制極坐標(biāo)圖使用極坐標(biāo)圖比較各區(qū)域的銷(xiāo)售總額大小。步驟4:繪制三維散點(diǎn)圖使用三維散點(diǎn)圖顯示不同季度各區(qū)域銷(xiāo)售變化趨勢(shì)。步驟5:繪制等高線圖使用等高線圖展示區(qū)域銷(xiāo)售變化的趨勢(shì)和模式。通過(guò)學(xué)習(xí)繪制不同類(lèi)型的圖表,讀者可以掌握使用Matplotlib進(jìn)行商業(yè)數(shù)據(jù)可視化分析的技能,為商業(yè)決策提供數(shù)據(jù)支持。具體的代碼實(shí)現(xiàn):#步驟1:導(dǎo)入Matplotlibimportmatplotlib.pyplotasplt#步驟2:準(zhǔn)備區(qū)域銷(xiāo)售數(shù)據(jù)regions=['東部','西部','北部','南部']sales=[50000,60000,80000,70000]#步驟3:繪制極坐標(biāo)圖plt.polar(regions,sales)plt.show()#步驟4:準(zhǔn)備三維銷(xiāo)售數(shù)據(jù)quarters=[1,2,3,4]regions=['東部','西部','北部','南部']sales=[[50000,40000,60000,55000],[50000,50000,70000,65000],[70000,75000,80000,90000],[60000,70000,75000,80000]]#繪制三維散點(diǎn)圖fig=plt.figure()ax=plt.axes(projection='3d')ax.scatter3D(quarters,regions,sales)plt.show()#步驟5:繪制等高線圖x=[1,2,3,4]y=[50000,60000,80000,70000]plt.contourf(x,y)plt.show()Seaborn數(shù)據(jù)繪圖本章習(xí)題一、選擇題1.(單選)Seaborn是基于哪個(gè)Python數(shù)據(jù)可視化庫(kù)的?(B)A.NumpyB.MatplotlibC.PandasD.Scipy2.(單選)在Seaborn中,哪個(gè)函數(shù)用于繪制直方圖和擬合密度曲線?(C)A.sns.barplot()B.sns.scatterplot()C.sns.distplot()D.sns.heatmap()3.(單選)在Seaborn中,哪個(gè)函數(shù)用于繪制兩個(gè)變量之間的散點(diǎn)圖,并可以使用顏色和標(biāo)記來(lái)表示分組變量?(B)A.sns.barplot()B.sns.scatterplot()C.sns.regplot()D.sns.heatmap()4.(多選)Seaborn可以繪制哪些類(lèi)型的統(tǒng)計(jì)圖表?(ACD)A.散點(diǎn)圖B.樹(shù)圖C.箱線圖D.熱力圖5.(多選)調(diào)整Seaborn圖形中文字體的方法有哪些?(AD)A.設(shè)置樣式主題B.保存為svg格式C.使用中文字體D.設(shè)置坐標(biāo)軸標(biāo)簽字體二、判斷題1.Seaborn是一個(gè)建立在Matplotlib之上的數(shù)據(jù)可視化庫(kù)。(正確)2.在Seaborn繪圖流程中,設(shè)置畫(huà)布參數(shù)是在導(dǎo)入繪圖模塊之后進(jìn)行的。(錯(cuò)誤)3.直方圖可以用來(lái)展示兩個(gè)連續(xù)型變量之間的關(guān)系。(錯(cuò)誤)4.seaborn無(wú)需導(dǎo)入matplotlib即可使用。(錯(cuò)誤)5.pairplot()可用于繪制散點(diǎn)圖矩陣。(正確)三、繪制圖形題1.使用直方圖展示評(píng)分分布情況。首先,導(dǎo)入必要的庫(kù):importmatplotlib.pyplotasplt和importseabornassns.讀取數(shù)據(jù):df=pd.read_csv('data/cook.csv').設(shè)置畫(huà)布:plt.figure(figsize=(6.4,4.8)).使用sns.distplot()繪制直方圖,并添加參數(shù)設(shè)置:sns.distplot(df['評(píng)分'],bins=20,color='blue',kde=True,hist_kws={'color':'g','label':'直方圖'},kde_kws={'color':'b','label':'密度曲線'}).設(shè)置標(biāo)題和標(biāo)簽:plt.title('評(píng)分分布直方圖'),plt.xlabel('評(píng)分'),plt.ylabel('頻數(shù)').添加圖例:plt.legend().展示圖形:plt.show().2.使用散點(diǎn)圖展示用料數(shù)與評(píng)分關(guān)系。使用散點(diǎn)圖來(lái)展示兩個(gè)連續(xù)型變量之間的關(guān)系。導(dǎo)入所需庫(kù)和數(shù)據(jù)。使用sns.scatterplot()繪制散點(diǎn)圖,設(shè)置橫軸為"用料數(shù)",縱軸為"評(píng)分",同時(shí)使用"難度"列來(lái)著色不同難度的點(diǎn):sns.scatterplot(x='用料數(shù)',y='評(píng)分',hue='難度',data=df,palette='Set1').添加標(biāo)題和標(biāo)簽:plt.title('用料數(shù)與評(píng)分關(guān)系'),plt.xlabel('用料數(shù)'),plt.ylabel('評(píng)分').添加圖例:plt.legend().展示圖形:plt.show().3.使用熱力圖展示不同菜系、難度與平均評(píng)分的關(guān)系。首先,對(duì)數(shù)據(jù)進(jìn)行透視,以便得到一個(gè)適合繪制熱力圖的數(shù)據(jù)格式。使用pd.pivot_table()函數(shù)創(chuàng)建一個(gè)透視表,索引為"菜系",列為"難度",值為"評(píng)分"的平均值:heatmap_data=df.pivot_table(index='菜系',columns='難度',values='評(píng)分',aggfunc='mean').繪制熱力圖:sns.heatmap(heatmap_data,cmap='YlGnBu',annot=True,fmt=".2f").添加標(biāo)題:plt.title('菜系與難度的平均評(píng)分').展示圖形:plt.show().4.使用小提琴圖展示不同菜系的評(píng)分分布。導(dǎo)入所需庫(kù)和數(shù)據(jù)。使用sns.violinplot()繪制小提琴圖,設(shè)置橫軸為"菜系",縱軸為"評(píng)分",并選擇一個(gè)顏色漸變的調(diào)色板:sns.violinplot(x='菜系',y='評(píng)分',data=df,palette='viridis').添加標(biāo)題和標(biāo)簽:plt.title('不同菜系的評(píng)分分布'),plt.xlabel('菜系'),plt.ylabel('評(píng)分').展示圖形:plt.show().實(shí)訓(xùn)使用Seaborn可視化分析產(chǎn)品銷(xiāo)售數(shù)據(jù)。一、實(shí)訓(xùn)目的通過(guò)這個(gè)實(shí)訓(xùn),讀者將學(xué)習(xí)使用Seaborn對(duì)公司業(yè)務(wù)數(shù)據(jù)進(jìn)行可視化分析,如產(chǎn)品銷(xiāo)售數(shù)據(jù)的可視化。這可以幫助直觀地發(fā)現(xiàn)數(shù)據(jù)之間的關(guān)系和規(guī)律,為商業(yè)決策提供支持。二、實(shí)訓(xùn)步驟步驟1:導(dǎo)入Seaborn庫(kù)導(dǎo)入Seaborn庫(kù),為可視化分析做準(zhǔn)備。步驟2:加載銷(xiāo)售數(shù)據(jù)讀取包含產(chǎn)品和不同區(qū)域銷(xiāo)售數(shù)據(jù)的csv數(shù)據(jù)。步驟3:繪制銷(xiāo)售熱力圖使用heatmap()可視化產(chǎn)品與區(qū)域之間的銷(xiāo)售關(guān)系。步驟4:繪制銷(xiāo)售分布圖使用distplot()查看各產(chǎn)品銷(xiāo)售額的分布情況。步驟5:繪制產(chǎn)品銷(xiāo)售關(guān)系圖使用pairplot()展示不同產(chǎn)品之間的銷(xiāo)售相關(guān)性。通過(guò)學(xué)習(xí)使用Seaborn的可視化功能分析商業(yè)數(shù)據(jù),讀者可以掌握數(shù)據(jù)可視化的技巧,從大量數(shù)據(jù)中獲取有價(jià)值的信息,為商業(yè)決策提供數(shù)據(jù)支持。產(chǎn)品銷(xiāo)售數(shù)據(jù):#產(chǎn)品信息products=['手機(jī)','電腦','汽車(chē)']#區(qū)域信息regions=['東部','西部','南部','北部']#銷(xiāo)售數(shù)量sales_data=[[2500,3000,5000,8000],[1500,2000,3000,4000],[8000,9000,15000,20000]]#將數(shù)據(jù)裝換為DataFramedata=pd.DataFrame(sales_data,index=products,columns=regions)代碼實(shí)現(xiàn):#導(dǎo)入Seaborn庫(kù)importseabornassns#讀取銷(xiāo)售數(shù)據(jù)data=pd.read_csv('product_sales.csv')#繪制熱力圖sns.heatmap(data=data,annot=True)plt.title("產(chǎn)品銷(xiāo)售熱力圖")plt.savefig('product_sales_heatmap.png')#繪制銷(xiāo)售分布圖sns.distplot(data['銷(xiāo)售量'])plt.title("產(chǎn)品銷(xiāo)售量分布圖")#繪制產(chǎn)品銷(xiāo)售關(guān)系圖sns.pairplot(data)plt.title("產(chǎn)品銷(xiāo)售量關(guān)系圖")以上代碼示例了使用Seaborn庫(kù)對(duì)產(chǎn)品銷(xiāo)售數(shù)據(jù)進(jìn)行可視化分析的過(guò)程,包括繪制熱力圖、分布圖和關(guān)系圖。通過(guò)可視化可以清晰地展示產(chǎn)品與區(qū)域之間的銷(xiāo)售關(guān)系,不同產(chǎn)品之間的銷(xiāo)售相關(guān)性等信息,為商業(yè)決策提供數(shù)據(jù)支持??Х蠕N(xiāo)售情況分析本章習(xí)題一、簡(jiǎn)答題1.為什么需要數(shù)據(jù)清洗?數(shù)據(jù)清洗是數(shù)據(jù)分析的重要步驟之一,它的目的是去除數(shù)據(jù)中的噪聲、錯(cuò)誤和不完整的部分,以保證數(shù)據(jù)的質(zhì)量和可靠性。清洗數(shù)據(jù)可以消除潛在的錯(cuò)誤影響,確保分析的準(zhǔn)確性,提高后續(xù)決策的可靠性。 2.什么是數(shù)據(jù)可視化?數(shù)據(jù)可視化是將數(shù)據(jù)通過(guò)圖表、圖像等形式轉(zhuǎn)化為可理解的視覺(jué)形態(tài)的過(guò)程。它幫助人們更容易理解和分析數(shù)據(jù),揭示數(shù)據(jù)之間的關(guān)系、模式和趨勢(shì),從而支持更深入的洞察和決策。二、計(jì)算題1.計(jì)算缺失值百分比。答案:importpandasaspd#讀取數(shù)據(jù)data=pd.read_excel("data/某咖啡公司銷(xiāo)售數(shù)據(jù).xlsx")#計(jì)算每列的缺失值百分比missing_percent=(data.isnull().sum()/len(data))*100#輸出結(jié)果print(missing_percent)2.計(jì)算平均利潤(rùn)率。答案:average_profit_rate=data['利潤(rùn)率'].str.rstrip('%').astype(float).mean()print("平均利潤(rùn)率:",average_profit_rate)實(shí)訓(xùn)當(dāng)使用Python來(lái)實(shí)現(xiàn)商業(yè)上的數(shù)據(jù)分析例子時(shí),我們可以以客戶細(xì)分為例。以下是一個(gè)可能的實(shí)訓(xùn)內(nèi)容,包括實(shí)訓(xùn)目的和實(shí)訓(xùn)步驟。 實(shí)訓(xùn)目的:實(shí)訓(xùn)的目的是通過(guò)使用Python進(jìn)行客戶細(xì)分分析,將客戶分成不同的群組,以便更好地定制營(yíng)銷(xiāo)策略和服務(wù)。學(xué)習(xí)者將學(xué)會(huì)數(shù)據(jù)預(yù)處理、特征選擇、聚類(lèi)分析等關(guān)鍵技術(shù)。實(shí)訓(xùn)步驟:1.數(shù)據(jù)收集和理解:收集客戶相關(guān)的數(shù)據(jù),如消費(fèi)金額、購(gòu)買(mǎi)頻率、地理位置等信息,理解數(shù)據(jù)的結(jié)構(gòu)和含義。2.數(shù)據(jù)預(yù)處理:進(jìn)行數(shù)據(jù)預(yù)處理,處理缺失值、異常值,進(jìn)行特征縮放等。將數(shù)據(jù)轉(zhuǎn)換成適合分析的格式。 #示例:數(shù)據(jù)預(yù)處理importpandasaspd#讀取數(shù)據(jù)data=pd.read_csv("customer_data.csv")#處理缺失值data=data.dropna()#特征選擇features=data[["Total_Spending","Purchase_Frequency","Location"]]#特征縮放fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()features_scaled=scaler.fit_transform(features) 3.數(shù)據(jù)分析:使用聚類(lèi)算法將客戶分成不同的群組,如K均值聚類(lèi)、層次聚類(lèi)等。#示例:數(shù)據(jù)分析fromsklearn.clusterimportKMeansnum_clusters=3kmeans=KMeans(n_clusters=num_clusters)clusters=kmeans.fit_predict(features_scaled)data["Cluster"]=clusters 4.結(jié)果可視化:繪制不同客戶群組的特征分布圖,以便觀察不同群組的特點(diǎn)。#示例:結(jié)果可視化importmatplotlib.pyplotaspltimportseabornassnsplt.figure(figsize=(10,6))sns.scatterplot(x="Total_Spending",y="Purchase_Frequency",hue="Cluster",data=data)plt.xlabel("TotalSpending")plt.ylabel("PurchaseFrequency")plt.title("CustomerSegmentation")plt.show() 5.分析結(jié)果應(yīng)用:根據(jù)分析結(jié)果,定制不同的營(yíng)銷(xiāo)策略和服務(wù),以滿足不同客戶群組的需求。通過(guò)這個(gè)實(shí)訓(xùn),學(xué)習(xí)者將學(xué)會(huì)如何使用Python進(jìn)行客戶細(xì)分分析,從數(shù)據(jù)預(yù)處理、特征選擇到聚類(lèi)分析的全過(guò)程。這將幫助他們?cè)谏虡I(yè)實(shí)際中應(yīng)用數(shù)據(jù)分析技術(shù)來(lái)優(yōu)化營(yíng)銷(xiāo)和服務(wù)策略。員工離職預(yù)測(cè)本章習(xí)題一、簡(jiǎn)答題1.什么是員工離職預(yù)測(cè)?員工離職預(yù)測(cè)是一種通過(guò)分析員工的績(jī)效和薪酬等指標(biāo),預(yù)測(cè)員工可能離職的風(fēng)險(xiǎn),并采取相應(yīng)措施來(lái)留住員工的方法。2.Scikit-Learn中的估計(jì)器是什么?估計(jì)器是Scikit-Learn中的對(duì)象,用于實(shí)現(xiàn)算法并對(duì)數(shù)據(jù)進(jìn)行擬合和預(yù)測(cè)。它包括常用的算法,如線性回歸、邏輯回歸、支持向量機(jī)等。二、計(jì)算題1.假設(shè)你有一個(gè)包含5個(gè)樣本的特征矩陣X_train,如下所示:X_train=[[0.5,0.8,0.2],[0.3,0.6,0.7],[0.1,0.4,0.9],[0.7,0.2,0.4],[0.9,0.3,0.6]]使用MinMaxScaler對(duì)這個(gè)特征矩陣進(jìn)行歸一化處理,將特征值縮放到0到1之間。請(qǐng)計(jì)算歸一化后的X_train。答案:MinMax歸一化處理:fromsklearn.preprocessingimportMinMaxScaler#原始特征矩陣X_train=[[0.5,0.8,0.2],[0.3,0.6,0.7],[0.1,0.4,0.9],[0.7,0.2,0.4],[0.9,0.3,0.6]]#構(gòu)建MinMaxScaler對(duì)象scaler=MinMaxScaler()#對(duì)特征矩陣進(jìn)行歸一化處理X_train_normalized=scaler.fit_transform(X_train)print(X_train_normalized)歸一化后的特征矩陣X_train_normalized:[[0.50.80.][0.20.60.8][0.0.41.][0.80.0.4][1.0.20.6]]2.假設(shè)你有一個(gè)邏輯回歸模型estimator,并且已經(jīng)使用測(cè)試集x_test進(jìn)行了預(yù)測(cè),得到了預(yù)測(cè)結(jié)果y_pred,如下所示:y_pred=[0,1,0,1,0,1,1,0,1,0]同時(shí),測(cè)試集的真實(shí)標(biāo)簽y_test為:y_test=[0,1,1,1,0,0,1,0,0,1]請(qǐng)計(jì)算模型的準(zhǔn)確率。答案:模型準(zhǔn)確率計(jì)算:fromsklearn.metricsimportaccuracy_score#模型預(yù)測(cè)結(jié)果y_pred=[0,1,0,1,0,1,1,0,1,0]#真實(shí)標(biāo)簽y_test=[0,1,1,1,0,0,1,0,0,1]#計(jì)算模型準(zhǔn)確率accuracy=accuracy_score(y_test,y_pred)print("模型準(zhǔn)確率:",accuracy)模型的準(zhǔn)確率為:0.7實(shí)訓(xùn)實(shí)訓(xùn)目的:實(shí)訓(xùn)的目的是通過(guò)使用Scikit-Learn建立一個(gè)房?jī)r(jià)預(yù)測(cè)模型,從房屋特征中預(yù)測(cè)房屋的銷(xiāo)售價(jià)格。學(xué)習(xí)者將學(xué)會(huì)數(shù)據(jù)預(yù)處理、模型構(gòu)建、訓(xùn)練和評(píng)估等關(guān)鍵步驟。實(shí)訓(xùn)步驟:1.數(shù)據(jù)收集和理解:收集房屋特征數(shù)據(jù)和對(duì)應(yīng)的房屋銷(xiāo)售價(jià)格數(shù)據(jù),理解數(shù)據(jù)的結(jié)構(gòu)和含義。2.數(shù)據(jù)預(yù)處理:進(jìn)行數(shù)據(jù)預(yù)處理,處理缺失值、異常值,進(jìn)行特征縮放等。將數(shù)據(jù)轉(zhuǎn)換成適合模型輸入的格式。#示例:數(shù)據(jù)預(yù)處理importpandasaspdfromsklearn.model_selectionimporttrain_test_split#讀取數(shù)據(jù)data=pd.read_csv("housing_data.csv")#處理缺失值data=data.dropna()#分割特征和目標(biāo)X=data.drop("Price",axis=1)y=data["Price"]#特征縮放fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()X_scaled=scaler.fit_transform(X) 3.數(shù)據(jù)集劃分:將數(shù)據(jù)劃分為訓(xùn)練集和測(cè)試集,通常將一部分?jǐn)?shù)據(jù)用于訓(xùn)練模型,另一部分用于評(píng)估模型性能。#示例:數(shù)據(jù)集劃分X_train,X_test,y_train,y_test=train_test_split(X_scaled,y,test_size=0.2,random_state=42)4.模型構(gòu)建:使用Scikit-Learn構(gòu)建預(yù)測(cè)模型,如線性回歸、決策樹(shù)回歸等。#示例:模型構(gòu)建fromsklearn.linear_modelimportLinearRegressionmodel=LinearRegression() 5.模型訓(xùn)練:使用訓(xùn)練集來(lái)訓(xùn)練模型。#示例:模型訓(xùn)練model.fit(X_train,y_train)6.模型評(píng)估:使用測(cè)試集來(lái)評(píng)估模型的性能。#示例:模型評(píng)估fromsklearn.metricsimportmean_squared_errory_pred=model.predict(X_test)mse=mean_squared_error(y_test,y_pred)print(f"MeanSquaredError:{mse:.4f}") 7.結(jié)果可視化:繪制模型預(yù)測(cè)值與真實(shí)值的對(duì)比圖,以便觀察模型的預(yù)測(cè)效果。#示例:結(jié)果可視化importmatplotlib.pyplotaspltplt.figure(figsize=(10,6))plt.scatter(y_test,y_pred)plt.xlabel("TruePrices")plt.ylabel("PredictedPrices")plt.title("TruePricesvs.PredictedPrices")plt.show()航班乘客數(shù)預(yù)測(cè)本章習(xí)題一、簡(jiǎn)答題1.什么是LSTM模型?答:LSTM(LongShort-TermMemory)模型是一種深度學(xué)習(xí)模型,適用于處理時(shí)間序列預(yù)測(cè)問(wèn)題。它能夠捕捉時(shí)間序列數(shù)據(jù)中的長(zhǎng)期依賴(lài)關(guān)系和波動(dòng),常用于航班乘客數(shù)預(yù)測(cè)等應(yīng)用。2.PyTorch中的自動(dòng)微分是什么?答:PyTorch提供了自動(dòng)微分功能,允許自動(dòng)計(jì)算張量的梯度。通過(guò)將requires_grad設(shè)置為T(mén)rue,PyTorch會(huì)跟蹤張量的計(jì)算歷史,并且可以使用.backward()函數(shù)計(jì)算梯度。這對(duì)于模型訓(xùn)練和梯度下降等優(yōu)化算法非常有用。二、計(jì)算題1.如果將一個(gè)形狀為(3,4,5)的張量進(jìn)行reshape為(2,15),結(jié)果中的元素如何排列?解決方法:importtorch#創(chuàng)建一個(gè)形狀為(3,4,5)的張量original_tensor=torch.arange(1,61).reshape(3,4,5)#使用view函數(shù)進(jìn)行reshapereshaped_tensor=original_tensor.view(2,15)#打印原始張量和reshape后的張量print("原始張量:\n",original_tensor)print("\nreshape后的張量:\n",reshaped_tensor)2.假設(shè)你有一個(gè)訓(xùn)練集的輸出結(jié)果train_y,其中包含了前10個(gè)時(shí)間步的乘客數(shù)(單位為千人),如下所示:train_y=[120,130,140,150,160,170,180,190,200,210]。現(xiàn)在你想將這些乘客數(shù)轉(zhuǎn)換成百萬(wàn)人,即除以1000,得到一個(gè)新的張量。請(qǐng)使用PyTorch完成這個(gè)計(jì)算,并輸出結(jié)果。解決方法:importtorchtrain_y=torch.tensor([120,130,140,150,160,170,180,190,200,210])train_y_million=train_y.float()/1000.0#將整數(shù)張量轉(zhuǎn)換為浮點(diǎn)型,然后除以1000print(train_y_million)輸出結(jié)果:tensor([0.1200,0.1300,0.1400,0.1500,0.1600,0.1700,0.1800,0.1900,0.2000,0.2100])實(shí)訓(xùn)實(shí)訓(xùn)目的:實(shí)訓(xùn)的目的是通過(guò)使用PyTorch建立一個(gè)銷(xiāo)售預(yù)測(cè)模型,從歷史銷(xiāo)售數(shù)據(jù)中預(yù)測(cè)未來(lái)銷(xiāo)售額。學(xué)習(xí)者將掌握如何準(zhǔn)備數(shù)據(jù)、構(gòu)建神經(jīng)網(wǎng)絡(luò)模型以及訓(xùn)練和評(píng)估模型。實(shí)訓(xùn)步驟:1.數(shù)據(jù)收集和理解:收集歷史銷(xiāo)售數(shù)據(jù),理解數(shù)據(jù)的結(jié)構(gòu)和含義。數(shù)據(jù)應(yīng)包括銷(xiāo)售額、時(shí)間戳等信息。2.數(shù)據(jù)預(yù)處理:進(jìn)行數(shù)據(jù)預(yù)處理,處理缺失值、異常值,進(jìn)行數(shù)據(jù)平滑等。將數(shù)據(jù)轉(zhuǎn)換成適合模型輸入的格式。#示例:數(shù)據(jù)預(yù)處理importpandasaspdfromsklearn.model_selectionimporttrain_test_split#讀取數(shù)據(jù)data=pd.read_csv("sales_data.csv")#處理時(shí)間戳data['timestamp']=pd.to_datetime(data['timestamp'])data.set_index('timestamp',inplace=True)#分割訓(xùn)練集和測(cè)試集train_data,test_data=train_test_split(data,test_size=0.2,shuffle=False)3.特征工程:提取與銷(xiāo)售預(yù)測(cè)相關(guān)的特征,如歷史銷(xiāo)售數(shù)據(jù)、季節(jié)性特征等。#示例:特征工程importnumpyasnpdefcreate_sequences(data,seq_length):sequences=[]targets=[]foriinrange(len(data)-seq_length):seq=data[i

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論