版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
***********學院教案課程名稱:Python數(shù)據(jù)分析與可視化項目實戰(zhàn)授課班級:****************************************授課時間:***********學年第1學期第1周至第2周共16周總學時64-96周學時4-6任課教師:***************教案1:基于大數(shù)據(jù)的求職信息分析與挖掘一、教學設計課程名稱數(shù)據(jù)分析授課班級大數(shù)據(jù)2201、2202軟件2201、2202、2203、2204授課時數(shù)6學時授課人數(shù)人授課地點1304、1306授課方式教學做一體學習項目基于大數(shù)據(jù)的求職信息分析與挖掘所選教材《Python數(shù)據(jù)分析與可視化實戰(zhàn)》教學內(nèi)容Python環(huán)境配置及turtle繪圖教學目標素質(zhì)目標具備技術應用與解決問題的素養(yǎng),能夠運用技術解決實際挑戰(zhàn);具備數(shù)據(jù)可視化與溝通的素養(yǎng),能夠有效傳達數(shù)據(jù)分析的結(jié)果;3、具備團隊協(xié)作與項目管理的素養(yǎng),能夠與團隊合作完成項目任務知識目標理解大數(shù)據(jù)的概念與特征;熟悉大數(shù)據(jù)處理的基本流程;理解數(shù)據(jù)挖掘的定義、任務、主要算法和流程;4、掌握在求職信息分析中使用的算法和模型,學習數(shù)據(jù)預處理和模型訓練的方法能力目標1.掌握安裝Anaconda3與Pandas庫的方法2.能夠?qū)?shù)據(jù)進行查看與提取3、能夠?qū)嵤┣舐毿畔⒎治雠c挖掘任務的各個階段,包括數(shù)據(jù)加工、模型訓練和數(shù)據(jù)分析。教學重難點重點難點教學方法教法任務驅(qū)動教法、情景化教法、差異化教法、討論式教法學法自主式學習、協(xié)作式學習、體驗式學習、探究式學習教學設計思路及知識導圖教學實施教學環(huán)節(jié)時間分配教學內(nèi)容及時間分配教學平臺資源課前課前導學1.完成課前學習問卷調(diào)查;2.觀看視頻;3.課前自學測試及問卷;課中項目介紹(5mins)大數(shù)據(jù)是指規(guī)模龐大、多樣化、高速生成的數(shù)據(jù)集,這些數(shù)據(jù)通常超出了傳統(tǒng)數(shù)據(jù)處理工具的能力范圍。大數(shù)據(jù)技術在各個領域都具有廣泛的影響:在商業(yè)智能和分析方面,大數(shù)據(jù)幫助企業(yè)分析客戶行為、市場趨勢和銷售數(shù)據(jù),支持決策制定和市場營銷策略;在醫(yī)療方面,大數(shù)據(jù)分析可以用于疾病預測、藥物研發(fā)、患者管理和醫(yī)療成本控制;在交通和城市規(guī)劃方面,大數(shù)據(jù)支持智能交通系統(tǒng)、城市規(guī)劃和交通流量優(yōu)化;在社交媒體和娛樂方面,大數(shù)據(jù)分析用于個性化推薦、廣告定位和社交趨勢分析等。大數(shù)據(jù)技術已經(jīng)成為各行各業(yè)的重要工具,對于就業(yè)市場也不例外。畢業(yè)生在步入職場之前,由于信息不對稱、缺乏經(jīng)驗,往往對就業(yè)前景和實際情況存在一定的疑慮和不確定性。這種不確定性可能會導致畢業(yè)生對自己的職業(yè)選擇和薪資期望與實際就業(yè)情況存在一定差距。而通過大數(shù)據(jù)分析和挖掘,可以幫助求職者更客觀地看待就業(yè)問題,減少就業(yè)預期與實際差距,從而更好地融入職場并實現(xiàn)職業(yè)目標。今天,我們就來學習如何使用大數(shù)據(jù)來進行信息的采集挖掘和分析任務準備(80mins)1.1大數(shù)據(jù)的特征大數(shù)據(jù)是一個仁者見仁、智者見智的寬泛概念。關于“什么是大數(shù)據(jù)”這個問題,大家比較認可關于大數(shù)據(jù)的“4V”說法。所謂“4V”,指的是大數(shù)據(jù)的四個特點,包含四個層面:Volume(數(shù)據(jù)量大),Variety(數(shù)據(jù)類型繁多),Velocity(處理速度快),Value(價值密度低)。大數(shù)據(jù)的價值本質(zhì)上體現(xiàn)為:提供了一種人類認識復雜系統(tǒng)的新思維和新手段。就理論上而言,在足夠小的時間和空間尺度上,對現(xiàn)實世界數(shù)字化,可以構造一個現(xiàn)實世界的數(shù)字虛擬映像,這個映像承載了現(xiàn)實世界的運行規(guī)律,在擁有充足的計算能力和高效的數(shù)據(jù)分析方法的前提下,對這個數(shù)字虛擬映像的深度分析,將有可能理解和發(fā)現(xiàn)現(xiàn)實復雜系統(tǒng)的運行行為、狀態(tài)和規(guī)律。應該說大數(shù)據(jù)為人類提供了全新的思維方式、探知客觀規(guī)律、改造自然和社會的新手段,這也是大數(shù)據(jù)引發(fā)經(jīng)濟社會變革最根本性的原因。1.2大數(shù)據(jù)處理的基本流程大數(shù)據(jù)處理的基本流程主要包括數(shù)據(jù)采集、數(shù)據(jù)預處理、數(shù)據(jù)存儲、數(shù)據(jù)處理與分析、數(shù)據(jù)展示/數(shù)據(jù)可視化、數(shù)據(jù)應用等環(huán)節(jié),其中數(shù)據(jù)質(zhì)量貫穿于整個大數(shù)據(jù)流程,每一個數(shù)據(jù)處理環(huán)節(jié)都會對大數(shù)據(jù)質(zhì)量產(chǎn)生影響和作用。通常,一個好的大數(shù)據(jù)產(chǎn)品要有大量的數(shù)據(jù)規(guī)模、快速的數(shù)據(jù)處理、精確的數(shù)據(jù)分析與預測、優(yōu)秀的可視化圖表以及簡練易懂的結(jié)果解釋。1.2.1數(shù)據(jù)采集大數(shù)據(jù)的采集是指利用多個數(shù)據(jù)庫來接收發(fā)自客戶端(Web網(wǎng)站訪問終端、App移動應用終端或者物聯(lián)網(wǎng)終端等)的數(shù)據(jù),并且用戶可以通過這些數(shù)據(jù)庫來進行簡單的查詢和處理工作。比如,電商會使用傳統(tǒng)的關系型數(shù)據(jù)庫MySQL和Oracle等來存儲每一筆事務數(shù)據(jù),除此之外,Redis和MongoDB這樣的NoSQL數(shù)據(jù)庫也常用于數(shù)據(jù)的采集。在大數(shù)據(jù)的采集過程中,其主要特點和挑戰(zhàn)是并發(fā)數(shù)高,因為同時有可能會有成千上萬的用戶來進行訪問和操作,比如火車票售票網(wǎng)站和淘寶,它們并發(fā)的訪問量在峰值時達到上百萬,所以需要在采集端部署大量數(shù)據(jù)庫才能支撐。并且如何在這些數(shù)據(jù)庫之間進行負載均衡和分片,的確需要深入的思考和設計。1.2.2數(shù)據(jù)預處理大數(shù)據(jù)采集過程中通常有一個或多個數(shù)據(jù)源,這些數(shù)據(jù)源包括同構或異構的數(shù)據(jù)庫、文件系統(tǒng)、服務接口等,易受到噪聲數(shù)據(jù)、數(shù)據(jù)值缺失、數(shù)據(jù)沖突等影響,因此需首先對收集到的大數(shù)據(jù)集合進行預處理,以保證大數(shù)據(jù)分析與預測結(jié)果的準確性與價值性。大數(shù)據(jù)的預處理環(huán)節(jié)主要包括數(shù)據(jù)清理、數(shù)據(jù)集成、數(shù)據(jù)歸約與數(shù)據(jù)轉(zhuǎn)換等內(nèi)容,可以大大提高大數(shù)據(jù)的總體質(zhì)量,是大數(shù)據(jù)過程質(zhì)量的體現(xiàn)。(1)數(shù)據(jù)清理包括對數(shù)據(jù)的不一致檢測、噪聲數(shù)據(jù)的識別、數(shù)據(jù)過濾與修正等方面,有利于提高大數(shù)據(jù)的一致性、準確性、真實性和可用性等方面的質(zhì)量。(2)數(shù)據(jù)集成則是將多個數(shù)據(jù)源的數(shù)據(jù)進行集成,從而形成集中、統(tǒng)一的數(shù)據(jù)庫、數(shù)據(jù)立方體等,這一過程有利于提高大數(shù)據(jù)的完整性、一致性、安全性和可用性等方面的質(zhì)量。(3)數(shù)據(jù)歸約是在不損害分析結(jié)果準確性的前提下降低數(shù)據(jù)集規(guī)模,使之簡化,包括維歸約、數(shù)據(jù)歸約、數(shù)據(jù)抽樣等技術,這一過程有利于提高大數(shù)據(jù)的價值密度,即提高大數(shù)據(jù)存儲的價值性。(4)數(shù)據(jù)轉(zhuǎn)換處理包括基于規(guī)則或元數(shù)據(jù)的轉(zhuǎn)換、基于模型與學習的轉(zhuǎn)換等技術,可通過轉(zhuǎn)換實現(xiàn)數(shù)據(jù)統(tǒng)一,這一過程有利于提高大數(shù)據(jù)的一致性和可用性??傊瑪?shù)據(jù)預處理環(huán)節(jié)有利于提高大數(shù)據(jù)的數(shù)據(jù)質(zhì)量,實現(xiàn)大數(shù)據(jù)的一致性、準確性、真實性、可用性、完整性、安全性和價值性,而大數(shù)據(jù)預處理中的相關技術是影響大數(shù)據(jù)過程質(zhì)量的關鍵因素。1.2.3數(shù)據(jù)處理與分析1.數(shù)據(jù)處理大數(shù)據(jù)的分布式處理技術與存儲形式、業(yè)務數(shù)據(jù)類型等相關,針對大數(shù)據(jù)處理的主要計算模型有MapReduce、分布式內(nèi)存計算系統(tǒng)、分布式流計算系統(tǒng)等。MapReduce是一個批處理的分布式計算框架,可對海量數(shù)據(jù)進行并行分析與處理,它適合對各種結(jié)構化、非結(jié)構化數(shù)據(jù)的處理。分布式內(nèi)存計算系統(tǒng)可有效減少數(shù)據(jù)讀寫和移動的開銷,提高大數(shù)據(jù)處理性能。分布式流計算系統(tǒng)則是對數(shù)據(jù)流進行實時處理,以保障大數(shù)據(jù)的時效性和價值性??傊?,無論哪種大數(shù)據(jù)分布式處理與計算系統(tǒng),都有利于提高大數(shù)據(jù)的價值性、可用性、時效性和準確性。大數(shù)據(jù)的類型和存儲形式?jīng)Q定了其所采用的數(shù)據(jù)處理系統(tǒng),而數(shù)據(jù)處理系統(tǒng)的性能與優(yōu)劣直接影響大數(shù)據(jù)質(zhì)量的價值性、可用性、時效性和準確性。因此在進行大數(shù)據(jù)處理時,要根據(jù)大數(shù)據(jù)類型選擇合適的存儲形式和數(shù)據(jù)處理系統(tǒng),以實現(xiàn)大數(shù)據(jù)質(zhì)量的最優(yōu)化。2.大數(shù)據(jù)分析大數(shù)據(jù)處理的核心就是對大數(shù)據(jù)進行分析,只有通過分析才能獲取很多智能的、深入的、有價值的信息,越來越多的應用涉及大數(shù)據(jù)。由于大數(shù)據(jù)的特點,大數(shù)據(jù)的分析方法在大數(shù)據(jù)領域就顯得尤為重要。(1)機器學習:機器學習(MachineLearning)是研究計算機怎樣模擬或?qū)崿F(xiàn)人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結(jié)構,使之不斷改善自身的性能。(2)數(shù)據(jù)挖掘:數(shù)據(jù)挖掘是從大量的、不完全的、有噪聲的、模糊的、隨機的實際應用數(shù)據(jù)中,提取隱含在其中的,人們事先不知道的,但又是潛在有用的信息和知識的過程。(3)模式識別:模式識別指對表征事物或現(xiàn)象的各種形式的信息進行處理和分析,以對事物或現(xiàn)象進行描述、辨認、分類和解釋的過程,是信息科學和人工智能的重要組成部分。(4)統(tǒng)計分析:對于大數(shù)據(jù)的統(tǒng)計分析主要利用分布式數(shù)據(jù)庫或者分布式計算集群來對存儲于其內(nèi)的海量數(shù)據(jù)進行普通的分析和分類匯總等,以滿足大多數(shù)常見的分析需求。(5)并行處理:大數(shù)據(jù)分析的三大挑戰(zhàn)是數(shù)據(jù)量的膨脹、數(shù)據(jù)深度分析需求的增長和數(shù)據(jù)類型不斷的多樣化。大數(shù)據(jù)分析采用MapReduce等并行處理方式,將海量數(shù)據(jù)進行分解并分布存儲,由數(shù)據(jù)挖掘系統(tǒng)并行處理,然后將多個局部處理結(jié)構合成最終的輸出模式,實現(xiàn)海量數(shù)據(jù)挖掘。1.2.4數(shù)據(jù)可視化與應用1.數(shù)據(jù)可視化數(shù)據(jù)可視化是指將大數(shù)據(jù)分析與預測結(jié)果以計算機圖形或圖像的直觀方式顯示給用戶的過程,并可與用戶進行交互式處理。數(shù)據(jù)可視化技術有利于發(fā)現(xiàn)大量業(yè)務數(shù)據(jù)中隱含的規(guī)律性信息,以支持管理決策。數(shù)據(jù)可視化環(huán)節(jié)可大大提高大數(shù)據(jù)分析結(jié)果的直觀性,便于用戶理解與使用,故數(shù)據(jù)可視化是影響大數(shù)據(jù)可用性和易于理解性質(zhì)量的關鍵因素。2.數(shù)據(jù)應用大數(shù)據(jù)應用是指將經(jīng)過分析處理后挖掘得到的大數(shù)據(jù)結(jié)果應用于管理決策、戰(zhàn)略規(guī)劃等的過程,它是對大數(shù)據(jù)分析結(jié)果的檢驗與驗證,大數(shù)據(jù)應用過程直接體現(xiàn)了大數(shù)據(jù)分析處理結(jié)果的價值性和可用性。大數(shù)據(jù)應用對大數(shù)據(jù)的分析處理具有引導作用。在大數(shù)據(jù)收集、處理等一系列操作之前,通過對應用情境的充分調(diào)研,對管理決策需求信息的深入分析,可明確大數(shù)據(jù)處理與分析的目標,從而為大數(shù)據(jù)收集、存儲、處理、分析等過程提供明確的方向,并保障大數(shù)據(jù)分析結(jié)果的可用性、價值性,滿足用戶的需求。近年來,數(shù)據(jù)挖掘引起了信息產(chǎn)業(yè)界的極大關注,其主要原因是存在大量數(shù)據(jù),可以廣泛使用,并且迫切需要將這些數(shù)據(jù)轉(zhuǎn)換成有用的信息和知識。獲取的信息和知識可以廣泛用于各種應用領域,包括商務管理、生產(chǎn)控制、市場分析、工程設計和科學探索等。本情境將對數(shù)據(jù)挖掘的概念、分類、預測、聚類分析、挖掘的工具分析進行介紹和對外貿(mào)出口數(shù)據(jù)挖掘?qū)嵗M行分析。2.1數(shù)據(jù)挖掘的定義數(shù)據(jù)挖掘(DataMining)是從大量的、不完全的、有噪聲的、模糊的、隨機的數(shù)據(jù)中提取隱含在其中人們事先不知道的,但又是潛在有用的信息和知識的過程。隨著信息技術的高速發(fā)展,人們積累的數(shù)據(jù)量急劇增長,動額以TB計,如何從海量的數(shù)據(jù)中提取有用的知識成為當務之急,數(shù)據(jù)挖掘就是為順應這種需要應運而生發(fā)展起來的數(shù)據(jù)處理技術,是知識發(fā)現(xiàn)(KnowledgeDiscoveryinDatabase)的關鍵步驟。數(shù)據(jù)挖掘是目前人工智能和數(shù)據(jù)庫領域研究的熱點問題,主要基于人工智能、機器學習、模式識別、統(tǒng)計學、數(shù)據(jù)庫、可視化技術等,高度自動化地分析企業(yè)的數(shù)據(jù),做出歸納性的整理,從中挖掘出潛在的模式,從而幫助決策者調(diào)整市場策略,減少風險。數(shù)據(jù)挖掘是通過分析每個數(shù)據(jù),從大量數(shù)據(jù)中尋找其規(guī)律的技術,主要有數(shù)據(jù)準備、規(guī)律尋找和規(guī)律表示三個步驟。數(shù)據(jù)準備是從相關的數(shù)據(jù)源中選取所需的數(shù)據(jù)并整合成用數(shù)據(jù)挖掘的數(shù)據(jù)集;規(guī)律尋找是用某種方法將數(shù)據(jù)集所含的規(guī)律找出來;規(guī)律表示是盡可能以用戶可理解的方式(如可視化)將找出的規(guī)律表示出來。數(shù)據(jù)挖掘的任務有關聯(lián)分析、聚類分析、分類分析、異常分析、特異群組分析和演變分析等。2.2數(shù)據(jù)挖掘的任務數(shù)據(jù)挖掘的任務主要是關聯(lián)分析、聚類分析、分類、預測、時序模式和偏差分析等。1.關聯(lián)分析關聯(lián)規(guī)則挖掘是由RakeshApwal等人首先提出的。兩個或兩個以上變量的取值之間存在某種規(guī)律性,就稱為關聯(lián)。數(shù)據(jù)關聯(lián)是數(shù)據(jù)庫中存在的一類重要的、可被發(fā)現(xiàn)的知識。關聯(lián)分為簡單關聯(lián)、時序關聯(lián)和因果關聯(lián)。關聯(lián)分析的目的是找出數(shù)據(jù)庫中隱藏的關聯(lián)網(wǎng)。一般用支持度和可信度兩個閾值來度量關聯(lián)規(guī)則的相關性,還不斷引入興趣度、相關性等參數(shù),使得所挖掘的規(guī)則更符合需求。2.聚類分析聚類分析是把數(shù)據(jù)按照相似性歸納成若干類別,同一類中的數(shù)據(jù)彼此相似,不同類中的數(shù)據(jù)相異。聚類分析可以建立宏觀的概念,發(fā)現(xiàn)數(shù)據(jù)的分布模式,以及可能的數(shù)據(jù)屬性之間的相互關系。3.分類分類就是找出一個類別的概念描述,它代表了這類數(shù)據(jù)的整體信息,即該類的內(nèi)涵描述,并用這種描述來構造模型,一般用規(guī)則或決策樹模式表示。分類是利用訓練數(shù)據(jù)集通過一定的算法而求得分類規(guī)則。分類可被用于規(guī)則描述和預測。4.預測預測是利用歷史數(shù)據(jù)找出變化規(guī)律,建立模型,并由此模型對未來數(shù)據(jù)的種類及特征進行預測。預測關心的是精度和不確定性,通常用預測方差來度量。5.時序模式時序模式是指通過時間序列搜索出的重復發(fā)生概率較高的模式。與回歸一樣,它也是用已知的數(shù)據(jù)預測未來的值,但這些數(shù)據(jù)的區(qū)別是變量所處時間的不同。6.偏差分析在偏差中包括很多有用的知識,數(shù)據(jù)庫中的數(shù)據(jù)存在很多異常情況,發(fā)現(xiàn)數(shù)據(jù)庫中數(shù)據(jù)存在的異常情況是非常重要的。偏差檢驗的基本方法就是尋找觀察結(jié)果與參照物之間的差別。2.3數(shù)據(jù)挖掘的主要算法目前,數(shù)據(jù)挖掘的算法主要包括神經(jīng)網(wǎng)絡法、決策樹法、遺傳算法、粗糙集法、模糊集法、關聯(lián)規(guī)則法等。1.神經(jīng)網(wǎng)絡法神經(jīng)網(wǎng)絡法是模擬生物神經(jīng)系統(tǒng)的結(jié)構和功能,是一種通過訓練來學習的非線性預測模型,它將每一個連接看作一個處理單元,試圖模擬人腦神經(jīng)元的功能,可完成分類、聚類、特征挖掘等多種任務,神經(jīng)網(wǎng)絡的學習方法主要表現(xiàn)在權值的修改上。神經(jīng)網(wǎng)絡法主要應用于數(shù)據(jù)挖掘的聚類技術中。其優(yōu)點是具有抗干擾、非線性學習、聯(lián)想記憶功能,對復雜情況能得到精確的預測結(jié)果;缺點是不適合處理高維變量,不能觀察中間的學習過程,具有“黑箱”性,輸出結(jié)果也難以解釋,學習時間較長。2.決策樹法決策樹是根據(jù)對目標變量產(chǎn)生效用的不同而建構分類的規(guī)則,通過一系列的規(guī)則對數(shù)據(jù)進行分類的過程,其表現(xiàn)形式是類似于樹形結(jié)構的流程圖。最典型的算法是J.R.Quinlan于1986年提出的ID3算法,之后在ID3算法的基礎上又提出了C4.5算法。采用決策樹法的優(yōu)點是決策制定的過程是可見的,不需要長時間構造過程,描述簡單、易于理解、分類速度快;缺點是很難基于多個變量組合發(fā)現(xiàn)規(guī)則。決策樹法擅長處理非數(shù)值型數(shù)據(jù),而且特別適合大規(guī)模的數(shù)據(jù)處理。決策樹提供了一種展示類似在什么條件下會得到什么值這類規(guī)則的方法。比如,在貸款申請中,要對申請的風險大小作出判斷。3.遺傳算法遺傳算法模擬了自然選擇和遺傳中發(fā)生的繁殖、交配和基因突變現(xiàn)象,是一種采用遺傳結(jié)合、遺傳交叉變異及自然選擇等操作來生成實現(xiàn)規(guī)則的,基于進化理論的機器學習方法。它的基本觀點是“適者生存”原理,具有隱含并行性、易于和其他模型結(jié)合等性質(zhì)。主要的優(yōu)點是可以處理許多數(shù)據(jù)類型,同時可以并行處理各種數(shù)據(jù);缺點是需要的參數(shù)太多,編碼困難,一般計算量比較大。遺傳算法常用于優(yōu)化神經(jīng)元網(wǎng)絡,能夠解決其他技術難以解決的問題。4.粗糙集法粗糙集法也稱粗糙集理論,是由波蘭數(shù)學家Z.Pawlak在20世紀80年代初提出的,是一種新的處理含糊、不精確、不完備問題的數(shù)學工具,可以處理數(shù)據(jù)約簡、數(shù)據(jù)相關性發(fā)現(xiàn)、數(shù)據(jù)意義的評估等問題。其優(yōu)點是算法簡單,在其處理過程中可以不需要關于數(shù)據(jù)的先驗知識,可以自動找出問題的內(nèi)在規(guī)律;缺點是難以直接處理連續(xù)的屬性,需先進行屬性的離散化。因此,連續(xù)屬性的離散化問題是制約粗糙集理論實用化的難點。粗糙集理論主要應用于近似推理、數(shù)字邏輯分析和化簡、建立預測模型等問題。5.模糊集法模糊集法是利用模糊集合理論對問題進行模糊評判、模糊決策、模糊模式識別和模糊聚類分析。模糊集合理論是用隸屬度來描述模糊事物的屬性。系統(tǒng)的復雜性越高,模糊性就越強。6.關聯(lián)規(guī)則法關聯(lián)規(guī)則反映了事物之間的相互依賴性或關聯(lián)性。其最著名的算法是R.Agrawal等人提出的Apriori算法。其算法的思想是:首先找出頻繁性至少和預定意義的最小支持度一樣的所有頻集,然后由頻繁項集產(chǎn)生強關聯(lián)規(guī)則。最小支持度和最小可信度是為了發(fā)現(xiàn)有意義的關聯(lián)規(guī)則給定的兩個閾值。在這個意義上,數(shù)據(jù)挖掘的目的就是從源數(shù)據(jù)庫中挖掘出滿足最小支持度和最小可信度的關聯(lián)規(guī)則。2.4數(shù)據(jù)挖掘的流程在實施數(shù)據(jù)挖掘之前,先制定采取什么樣的步驟,每一步都做什么,達到什么樣的目標是必要的,有了好的計劃才能保證數(shù)據(jù)挖掘有條不紊地實施并取得成功。很多軟件供應商和數(shù)據(jù)挖掘顧問公司提供了一些數(shù)據(jù)挖掘過程模型,來指導他們的用戶進行數(shù)據(jù)挖掘工作。建立數(shù)據(jù)挖掘過程模型的步驟主要包括定義問題、建立數(shù)據(jù)挖掘庫、分析數(shù)據(jù)、準備數(shù)據(jù)、建立模型、評價模型和實施。3、Python數(shù)據(jù)挖掘Python語言具有易學易用、強大的第三方庫支持等特點,被廣泛應用于數(shù)據(jù)挖掘與機器學習領域。數(shù)據(jù)挖掘是指從大量數(shù)據(jù)中提取有效信息的過程,包括數(shù)據(jù)預處理、特征選擇、模型選擇和評估等環(huán)節(jié)。Python中的數(shù)據(jù)挖掘庫主要有以下幾個:(1)NumPy:用于科學計算和數(shù)學操作,提供多維數(shù)組對象和一些便捷的函數(shù)操作。(2)Pandas:用于數(shù)據(jù)分析和處理,提供豐富的數(shù)據(jù)結(jié)構和數(shù)據(jù)操作方法。(3)Matplotlib:用于數(shù)據(jù)可視化,提供各種繪圖函數(shù)和樣式設置。(4)Scikit-learn:用于機器學習,提供各種監(jiān)督/非監(jiān)督/半監(jiān)督的學習算法,包括分類、回歸、聚類等。機器學習是基于數(shù)據(jù)構建模型并進行預測或分類的過程。Python中的機器學習庫相較于數(shù)據(jù)挖掘庫更加強調(diào)算法的實現(xiàn)和模型的優(yōu)化,主要有以下幾個:(1)TensorFlow:由Google開發(fā)的機器學習框架,提供各種深度學習算法的實現(xiàn)和優(yōu)化,包括神經(jīng)網(wǎng)絡、卷積神經(jīng)網(wǎng)絡、循環(huán)神經(jīng)網(wǎng)絡等。(2)Keras:基于TensorFlow或Theano開發(fā)的高層次神經(jīng)網(wǎng)絡庫,封裝了各種神經(jīng)網(wǎng)絡的實現(xiàn)和訓練操作。(3)PyTorch:由Facebook開發(fā)的機器學習框架,提供各種深度學習算法的實現(xiàn)和優(yōu)化,具有動態(tài)計算圖和易變性等特點。(4)Scikit-learn:雖然是數(shù)據(jù)挖掘庫,但也提供了許多常見的機器學習算法,如決策樹、支持向量機、樸素貝葉斯等。綜上所述,Python的數(shù)據(jù)挖掘和機器學習生態(tài)系統(tǒng)非常完善,提供了豐富的工具和庫支持,為數(shù)據(jù)科學家和機器學習工程師提供了便利。Python可以用于不同類型的數(shù)據(jù)挖掘任務,例如:數(shù)據(jù)預處理:Python可以用于數(shù)據(jù)處理、轉(zhuǎn)換和清洗,例如數(shù)據(jù)過濾、去重、缺失值填充等。探索性數(shù)據(jù)分析:Python可以用于生成可視化圖形和摘要統(tǒng)計信息,以幫助分析數(shù)據(jù)集的特征并發(fā)現(xiàn)潛在的關系和趨勢。監(jiān)督式學習:Python可以用于建立和優(yōu)化監(jiān)督式模型來進行分類、回歸和預測任務。無監(jiān)督式學習:Python可以用于進行聚類和降維操作,以便于發(fā)現(xiàn)和理解數(shù)據(jù)集中隱藏的信息和模式。任務分析及實現(xiàn)(75mins)4、求職信息分析任務4.1研究內(nèi)容及方法本項目以分析電子商務類人才為例,通過對招聘網(wǎng)站電子商務人才職位信息進行數(shù)據(jù)入庫、數(shù)據(jù)清理、數(shù)據(jù)預處理、相關數(shù)據(jù)分析、結(jié)巴分詞、數(shù)據(jù)可視化、崗位薪資預測及LDA主題文本相似度模型建立等操作,完成整體項目的開發(fā)工作。具體包含:(1)通過調(diào)用python中的pandas庫對數(shù)據(jù)進行入庫處理,調(diào)用其中的各種函數(shù)對數(shù)據(jù)進行去重、去空等操作,對數(shù)據(jù)進行預處理操作,方便后期建立模型。(2)通過調(diào)用pyecharts對各個特征和薪資的關系進行數(shù)據(jù)可視化分析、對招聘職位信息進行探索分析、使用jieba對崗位描述進行中文分詞并查找其中的差別。(3)對和薪資有關的數(shù)據(jù)進行特征降維、數(shù)據(jù)標準化等操作,將70%的數(shù)據(jù)集劃分為訓練集,剩下的30%劃分為測試集,調(diào)用隨機森林、xgboost、lightGBM等算法對其進行訓練,然后觀察其RMSE分數(shù)、R2評分,確定最優(yōu)模型并抽取其中一些數(shù)據(jù)作為測試集對崗位薪資進行預測。(4)在TF-IDF的基礎上建立職位LDA模型對求職者的能力進行相似度的計算,并輸出LDA主題模型的可視化分析結(jié)果。4.2算法及模型4.2.1lightGBM回歸算法LightGBM(LightGradientBoostingMachine)是一個梯度boosting框架,是基于決策樹算法的分布式梯度提升框架。LightGBM相較于xgboost,它擁有更快的訓練效率,更高的準確率,支持并行化學習,占用更少的內(nèi)存,還能夠處理大規(guī)模數(shù)據(jù)。Xgboost采用了預排序方法(pre-sorted),這種方法既要保留數(shù)據(jù)的特征值,又要保留特征的排序結(jié)果,占用空間很大,而且每次經(jīng)過分割點都要進行分解運算,耗費的資源實在是太多了。而lightGBM使用了直方圖算法如圖6-1所示,將特征值轉(zhuǎn)化為了bin值,且不需要存儲特征到樣本的索引,極大地節(jié)省了運行內(nèi)存,在訓練過程中采用了互斥特征捆綁算法和單邊梯度算法,對數(shù)據(jù)特征進行剪枝,減少了大規(guī)模的計算。它使用了帶有深度限制的按葉子生長(leaf-wise)算法,拋棄了傳統(tǒng)的按層生長(level-wise)算法,以這種算法構建的決策樹減少了很多不必要的計算量。4.2.2LDA主題模型LDA模型是一種可以將文檔數(shù)據(jù)集中的每篇文章的主題以概率分布形式給出的主題模型,再通過這個主題分布進行主題聚類或者文本分類,這樣就相當于抽出了每篇文章的主旨。這也是一種典型的“詞包”模式,即一篇文章是由一系列單詞組成的,它們之間沒有一定的順序,因此,在抽取文本的隱性主題時,往往會忽視其語法結(jié)構和詞匯的先后次序。LDA有三層生成式貝葉斯網(wǎng)絡結(jié)構,包含了單詞,文檔和文檔整體三者之間的概率分布關系,其結(jié)構依次是文檔層、主題層和特征詞層,其網(wǎng)絡結(jié)構如圖6-2所示。LDA主題模型建立的核心公式如下:P(w|d)=P(w|t)*P(t|d)直觀地去看以上公式,就是將Topic作為中間層,可以通過當前的θd和φt給出了文檔d中出現(xiàn)單詞w的概率。其中P(t|d)利用θd計算得到,P(w|t)利用φt計算得到。由于文本的主題分布是文本向量空間的簡單映射,所以我們只需對LDA模型文本進行向量化,然后就可以比對他們的相似度,計算并輸出相似的文本結(jié)果和相似度。本文選取的數(shù)據(jù)集結(jié)構主要分成兩個部分:結(jié)構化數(shù)據(jù)和文本數(shù)據(jù),其中結(jié)構化數(shù)據(jù)主要包括公司性質(zhì)、公司行業(yè)、工作類別、薪資、公司規(guī)模、工作地址、招聘人數(shù)、工作經(jīng)驗、學歷要求等。文本數(shù)據(jù)主要包括公司能力需求與公司名稱。由于一些企業(yè)在發(fā)布招聘信息的時候不嚴謹,為了快速達到招聘發(fā)布而大規(guī)模重復發(fā)布或者少填漏填信息,導致數(shù)據(jù)集中有許多重復值已經(jīng)缺失值,所以我們要對數(shù)據(jù)集進行去除重復值和缺失值的操作。其中duplicated函數(shù)的作用是去遍歷數(shù)據(jù)并尋找出其中重復數(shù)據(jù)的行,isnull函數(shù)就是查找出字典中的所有缺失值,再用sum函數(shù)將其統(tǒng)計出來,最后將重復或含有缺失值的行進行刪除。4.3數(shù)據(jù)加工與訓練模型數(shù)據(jù)加工是指融合多源海量的數(shù)據(jù),并將其轉(zhuǎn)化為可被操作的智能數(shù)據(jù)的過程。具體地說,是處理來自單個和多個數(shù)據(jù)源的數(shù)據(jù)或數(shù)據(jù)組合,以及數(shù)據(jù)間關系,實現(xiàn)精確定位和特性預估,并完成對危險態(tài)勢和重要性的及時評估的過程。數(shù)據(jù)加工集成了多個數(shù)據(jù)源以產(chǎn)生比任何單個數(shù)據(jù)源提供的信息更一致、更準確和更有用的信息,其特點是根據(jù)任務需求增加搜集的數(shù)據(jù)源,并且通過不斷地預估和評價算法,修正數(shù)據(jù)加工過程,以達到更好的結(jié)果。設訓練數(shù)據(jù)集為D,表示其樣本容量,設有j個類,,為屬于類的樣本個數(shù),。設特征A有n個不同的取值,根據(jù)特征A的取值將D劃分為n個子集,為的樣本個數(shù),。記子集中屬于的樣本的集合為,即,為的樣本個數(shù),于是信息增益的算法如下:輸入:所需要的訓練數(shù)據(jù)集D和表示特征屬性A:輸出:特征A對訓練數(shù)據(jù)集D的信息增益。計算數(shù)據(jù)集D的經(jīng)驗熵計算特征A對數(shù)據(jù)集D的經(jīng)驗條件熵計算信息增益提高樹的深度可以得到更確切的模型,而這與預期的內(nèi)生動力模型圖大致相同,同時模型的復雜度隨著決策樹的深度會越來越復雜。但是樹的深度對模型訓練的精確度也有一定的影響,樹的深度越大,其擬合程度越嚴重,即會產(chǎn)生較多的影響。在使用k-means算法聚類時,k值的選擇十分重要,肘部法則和輪廓系數(shù)可以方便我們選擇出最佳的k值。并基于以下方法實現(xiàn):(1)對所獲特征進行篩選。對特征值進行分類,聯(lián)系目標值的相關程度將其分為有效特征值與無效特征值。過多的特征值參與訓練容易出現(xiàn)多維災難的問題,且會降低代碼的運行速率及模型過擬合的缺陷,故此步是關鍵。采用Filter過濾法對現(xiàn)有特征值進行逐步篩選,過濾無關特征值及冗余特征值,并留存有效相關特征值以對模型進行更好的準確度提升訓練。(2)對提取特征后的數(shù)據(jù)進行算法建模。對于所選數(shù)據(jù)集有目標類別的二分類特征,故選用貝葉斯模型進行構建與預測。先對所用數(shù)據(jù)集做標簽值與特征值的分類處理,并按相關比例進行訓練集和測試集的劃分,之后構建貝葉斯模型將訓練集進行模型訓練,對模型進行準確度的測試并進行驗證,得出最終預測數(shù)據(jù)。4.4數(shù)據(jù)分析與預測通過數(shù)據(jù)統(tǒng)計和挖掘反映出了發(fā)布大數(shù)據(jù)崗位招聘的數(shù)量在不同大城市當中的具體占比,通過圖6-3可以看出,招聘崗位主要集中在北京、上海、廣州、浙江四個城市,說明電子商務崗位在這些城市有很好的發(fā)展前景,工作薪酬較高,但是通過觀察圖6-4可以發(fā)現(xiàn)不僅以上四個地區(qū)的平均薪資較高還有福建、江蘇等地區(qū)也有較為可觀的薪資水準,所以求職者也可以考慮去這些地區(qū)謀求發(fā)展。通過對薪資數(shù)據(jù)進行區(qū)間劃分,得到下列分類并對各分類的數(shù)量進行統(tǒng)計,以便觀察電子商務崗位的平均薪資如何,如6-5所示。我們可以看出薪酬在5000以下的崗位較多,說明社會需要許多廉價勞動力去完成一些相關事務,但高薪酬的高水平技術的工作崗位仍有許多空缺,需要大規(guī)模人才去補充。高水平、對自己有要求的求職者往往希望得到一份薪資較高的比較符合自己能力的工作崗位,所以本文統(tǒng)計了工作薪酬最高的前20個崗位,來幫助想要獲得高薪工作的求職者指明道路,如圖6-6所示。薪酬較高的工作大多數(shù)都是企業(yè)主管、企業(yè)核心技術工程師、軟件開發(fā)工程師、總經(jīng)理這樣的職位,這些職位需要應聘人員有大規(guī)模的工作經(jīng)驗和相應的技術水平。不止工作崗位地區(qū)、崗位類別對薪資有影響,不同性質(zhì)的企業(yè)之間的薪資水平也存在差異,本文通過對不同性質(zhì)的企業(yè)數(shù)量和平均薪資進行了統(tǒng)計,得到了6-7和6-8。通過兩張圖我們可以發(fā)現(xiàn),社會企業(yè)的主體為民營企業(yè),但是民營企業(yè)的平均薪資卻相對較低,合資企業(yè)的平均薪酬處于較高水準,不過其他性質(zhì)的企業(yè)間平均薪資倒也相差不多,所以求職者可以嘗試著去自己喜歡的性質(zhì)的企業(yè)去謀求崗位。通過統(tǒng)計公司行業(yè)類別可以看出社會上哪些行業(yè)的職位有空缺,有了這些數(shù)據(jù)可以使得高校有針對性地培養(yǎng)相關人才,還可以影響求職者的選擇,通過6-9可以看出需求量最大的是互聯(lián)網(wǎng)/電子商務類的相關崗位,遠多于其他崗位,有關于互聯(lián)網(wǎng)/電子商務方面的人員需求依舊有很大的空缺,而且通過6-10可以看出互聯(lián)網(wǎng)/電子商務相關崗位的平均薪資在10000左右,也是非??捎^的,所以各個高??梢灾τ谂囵B(yǎng)相關專業(yè)人才以應對社會上的人才需求,緩解當代大學畢業(yè)生就業(yè)困難的問題,求職者也可以通過學習相關知識進行轉(zhuǎn)型。在現(xiàn)實生活中,崗位薪資還與求職者的學歷和工作經(jīng)驗有密切的聯(lián)系。求職者的學歷越高或者工作經(jīng)驗越豐富,那么相應需求的崗位薪資也越豐厚。如圖6-11和圖6-12所示,我們可以發(fā)現(xiàn)此次實驗所用的招聘數(shù)據(jù)集中的學歷要求大多為大?;虿幌蓿ぷ鹘?jīng)驗要求不限的居多,可以說明社會中極其缺少基層工作人員,學歷要求越高或工作經(jīng)驗越豐富的工作薪資越高。而且通過圖6-13和圖6-14我們可以發(fā)現(xiàn)10年以上工作經(jīng)驗的平均薪資要比博士的平均薪資要高,這說明工作經(jīng)驗是否豐厚要比學歷高低對薪資的影響力更大。除了以上因素對崗位薪資有影響,公司規(guī)模和工作的發(fā)布時間也與崗位的薪資有關。通過圖6-15和6-16我們可以發(fā)現(xiàn)一般來說公司的規(guī)模越大,崗位的薪資越高,工作發(fā)布的年份該項行業(yè)正在蓬勃發(fā)展,崗位的薪資越高,反之崗位的薪資越低。通過下圖我們可以看出公司規(guī)模在20-99人、500-999人、1000-9999人時的平均薪資較高,在2017年發(fā)布的工作的平均崗位薪資較高,說明2017年時社會經(jīng)濟發(fā)展較好,各行業(yè)經(jīng)濟景氣,也可以看出公司規(guī)模對崗位薪資有一定的影響。通過對高薪崗位和低薪崗位的能力需求進行分詞,然后輸出可視化結(jié)果,觀察其中的關鍵詞變化,來分辨高薪和低薪崗位的差別,以便求職者更有針對性地提升自己,獲取更高的薪資報酬。通過詞云圖可以發(fā)現(xiàn)薪資高于10000的崗位能力需要的是完成工程、作為經(jīng)理、管理者一類的需要豐富經(jīng)驗和較高學歷水平的人才如圖6-18所示,而薪資低于10000的崗位主要負責運營管理和客戶對接等基礎工作如圖6-17所示。項目拓展(80mins)由此可見,工作崗位地區(qū)、學歷、工作經(jīng)驗、公司規(guī)模等因素都對薪資水平有一定的影響,這也符合前文提出的這些因素都對薪資有影響,而且不同的因素對薪資高低的影響不同。根據(jù)對招聘網(wǎng)站信息的分析,可以得到如下啟示:(1)求職者在瀏覽招聘信息時第一關注的崗位的薪資狀況,當看到心儀的薪資后再去查看該崗位招聘人員的具體需求,當遇到無法給定薪資的崗位時,求職者無法清晰地判斷出該崗位的真實薪資區(qū)間。通過對招聘信息中的崗位能力需求進行文本相似度分析,推薦相似崗位的名稱及薪資狀況,幫助求職者明確崗位薪資狀況是否符合自身期望。(2)由于招聘網(wǎng)站的審查制度存在漏洞,導致了大規(guī)模虛假的招聘信息流入,其中有許多詐騙團伙捏造的高薪低要求。通過數(shù)據(jù)處理,回歸模型訓練預測出擁有相關特征的薪資,來幫助求職者分辨真假招聘信息,避免求職者自身利益受到損害。(3)關于中小型企業(yè)無法合理給定相關崗位的薪資從而導致人才流失。通過崗位薪資的預測,可以幫助企業(yè)了解市場相關崗位的薪資狀況,從而幫助企業(yè)設定合理的薪資,吸引相關人才,提高企業(yè)招聘效率。如今我國已經(jīng)進入了大數(shù)據(jù)時代,不論任何行業(yè)或企業(yè)都會有與之對應的大數(shù)據(jù)分析。大數(shù)據(jù)分析的出現(xiàn)不僅能讓人們的生活更便利,也可以指導人們的投資、企業(yè)的營銷和應聘者求職。大數(shù)據(jù)技術作為互聯(lián)網(wǎng)產(chǎn)業(yè)的核心技術之一,將在產(chǎn)業(yè)互聯(lián)網(wǎng)賦能傳統(tǒng)行業(yè)的過程中發(fā)揮重要的作用。課后項目實戰(zhàn)***********學院教案課程名稱:程序設計基礎(Python)授課班級:****************************************授課時間:***********學年第1學期第1周至第2周共16周總學時64-96周學時4-6任課教師:***************教案1選學內(nèi)容——Python編程基礎一、教學設計課程名稱數(shù)據(jù)分析授課班級大數(shù)據(jù)2201、2202軟件2201、2202、2203、2204授課時數(shù)6學時授課人數(shù)人授課地點1304、1306授課方式教學做一體學習項目選學內(nèi)容——Python編程基礎所選教材《Python數(shù)據(jù)分析與可視化實戰(zhàn)》教學內(nèi)容Python編程基礎教學目標素質(zhì)目標理解Python的基本結(jié)構和特點。掌握Python的基本語法,如變量命名規(guī)則、數(shù)據(jù)類型、運算符、條件語句、循環(huán)語句等。理解序列數(shù)據(jù)結(jié)構的概念,包括字符串、列表和集合的定義和用法。知識目標能夠獨立編寫簡單的Python程序,實現(xiàn)基本的輸入、處理和輸出功能。能夠運用條件語句和循環(huán)語句解決問題,實現(xiàn)程序的流程控制。能夠使用序列數(shù)據(jù)結(jié)構進行數(shù)據(jù)的存儲、操作和處理。能力目標培養(yǎng)邏輯思維能力,能夠?qū)嶋H問題轉(zhuǎn)化為計算機程序?qū)崿F(xiàn)的思路。培養(yǎng)問題解決能力,能夠通過編寫程序解決實際問題。培養(yǎng)代碼書寫規(guī)范和良好的編程習慣,提高代碼可讀性和可維護性。4、培養(yǎng)自學能力和團隊協(xié)作能力,能夠主動學習和探索新的知識,并與他人合作完成編程任務。教學重難點重點難點教學方法教法任務驅(qū)動教法、情景化教法、差異化教法、討論式教法學法自主式學習、協(xié)作式學習、體驗式學習、探究式學習教學設計思路及知識導圖教學實施教學環(huán)節(jié)時間分配教學內(nèi)容及時間分配教學平臺資源課前課前導學1.完成課前學習問卷調(diào)查;2.觀看視頻;3.課前自學測試及問卷;課中項目介紹(5mins)Python是一種高級編程語言,具有簡單、易讀、易學的特點。Python支持多種編程范式,如面向?qū)ο缶幊?、函?shù)式編程和命令式編程等,使得開發(fā)者有更大的自由度和靈活性。它被廣泛應用于數(shù)據(jù)分析、科學計算、機器學習、Web開發(fā)等領域,因為它擁有強大的庫和工具,使得編寫代碼變得更加高效和便捷。項目七系統(tǒng)地介紹了Python編程基礎,包括Python的基本語法、變量、數(shù)據(jù)類型、運算符、流程控制、函數(shù)、基本結(jié)構等知識點。通過學習這些內(nèi)容,掌握基本的Python編程技能,更好地學習Python數(shù)據(jù)分析與可視化,并能夠應用Python解決實際問題,為進一步深入學習和應用Python打下堅實的基礎。知識講解基礎知識1.1計算機程序和基本結(jié)構計算機程序是一組計算機能識別和執(zhí)行的指令,是對計算任務的處理對象和處理規(guī)則的描述。它以某些程序設計語言編寫,運行于某種目標結(jié)構體系上。簡單的說程序是一個指令序列,根據(jù)用戶使用的編程語言的不同,而采用不同的方式進行編寫。程序設計是設計和構建可執(zhí)行的程序以完成特定計算結(jié)果的過程,是軟件構造活動的重要組成部分,一般包含分析、設計、編碼、調(diào)試、測試等階段。熟悉和掌握程序設計的基礎知識,是在現(xiàn)代信息社會中生存和發(fā)展的基本技能之一。1.2計算機程序和基本結(jié)構在程序執(zhí)行的過程中,其值不發(fā)生改變的量稱為常量。常量分為直接常量和符號常量。直接常量(字面常量)包括以下幾種:(1)整數(shù)常量:6、0、-6(2)實型常量:6.8、-5.18(3)字符常量:‘x’、‘y’符號常量是指用標識符代表一個常量。需要注意的是,Python沒有真正意義上的符號常量,但有的時候需要用到符號常量。一般是在import語句下面用大寫字母作為常量名,如NUMBER=100。但這并不意味著這個值不可以被改變。習慣上符號常量的標識符用大寫字母,變量標識符用小寫字母,以示區(qū)別。使用符號常量的好處是能做到“一改全改”。即如果該常量被使用了很多次,也只需在最開始的地方改變其初值即可。變量的概念基本上和初中代數(shù)方程中的變量是一致的,只是在計算機程序中,變量不僅可以是數(shù)字,還可以是任意數(shù)據(jù)類型。值可以改變的量稱為變量。一個變量應該有一個名字,在內(nèi)存中占據(jù)一定的存儲單元。在Python中,對一個變量賦值之前并不需要對其定義或聲明,它會在第一次賦值時自動生成。在使用一個變量之前需要先對其進行賦值。變量命名規(guī)則如下:(1)變量名必須以字母或下劃線開頭,后面可以跟任意數(shù)量的字母、下劃線和數(shù)字。變量名中只能有字母、下劃線和數(shù)字。(2)區(qū)分大小寫,如Python和python是不同的。(3)變量名不能使用保留字。1.3標識符與關鍵字1.3.1Python標識符標識符用來表示常量、變量、函數(shù)、對象等程序要素的名字。Python標識符的命名規(guī)則如下:(1)標識符由字母、數(shù)字和下劃線組成,不能以數(shù)字開頭。(2)標識符區(qū)分大小寫字母。(3)不能使用Python關鍵字作為標識符1.3.2Python關鍵字關鍵字也稱保留字,不能把它們用作任何標識符名稱。Python的標準庫提供了一個keyword模塊,可以輸出當前版本的所有關鍵字。示例如下:importkeywordprint(keyword.kwlist)#輸出關鍵字列表1.4輸入與輸出1.4.1print介紹在Python中內(nèi)置有字符串的格式化操作,所以print()函數(shù)支持格式化輸出。在格式化字符串時,Python會插入格式操作符(如%s)到字符串中,為真實的數(shù)值預留位置,并說明真實數(shù)值需要呈現(xiàn)的格式。1.4.2認識input系統(tǒng)需要交互,就需要讓用戶向計算機輸入一些字符,Python提供了一個input()函數(shù),該函數(shù)可以讓用戶輸入字符串,并存放到一個變量里。input只能接收字符型,+表示聯(lián)系為一個字符串,因此要進行數(shù)學運算時,需要用eval()進行轉(zhuǎn)換。如家庭能耗計算中用水、用電、用氣量的輸出。1.5注釋語句python中的注釋有多種,有單行注釋,多行注釋,批量注釋,中文注釋也是常用的。Python注釋也有自己的規(guī)范,在文章中會介紹到。注釋可以起到一個備注的作用。團隊合作的時候,個人編寫的代碼經(jīng)常會被多人調(diào)用。為了讓別人能更容易理解代碼的用途,使用注釋是非常有效的1.5.1python單行注釋符號(#)井號(#)常被用作單行注釋符號,在代碼中使用#時,它右邊的任何數(shù)據(jù)都會被忽略,當做是注釋,#號右邊的內(nèi)容在執(zhí)行的時候是不會被輸出的1.5.2批量、多行注釋符號在python中也會有注釋有很多行的時候,這種情況下就需要批量多行注釋符了。多行注釋是用三引號''''''包含的,例如:輸入''''''或者"""""",將要注釋的代碼插在中間。Windows中IDLE的注釋快捷鍵是Alt+3,取消注釋是Alt+4。JupyterNotebook和Pycharm中,快速注釋代碼(ctrl+/),快速取消注釋代碼(ctrl+/)1.6認識Python的基本數(shù)據(jù)類型1.6.1認識Python的基本數(shù)據(jù)類型打開計算器(右鍵單擊Windows圖標,搜索中找到計算器,調(diào)整為程序員模式),認識整型中的不同進制。整數(shù)類型,英文為integer,簡寫為int,可以表示正數(shù)、負零。整數(shù)的不同進制表示方式:·十進制→默認的進制·二進制→以0b開頭·八進制→以0o開頭·十六進制→以0x開頭ython提供了內(nèi)置函數(shù)hex(a)、oct(a)、bin(a),可以將一個十進制數(shù)a分別轉(zhuǎn)換成十六進制、八進制及二進制的字符串1.6.2浮點型數(shù)據(jù)浮點數(shù)即帶有小數(shù)部分的數(shù)字。在Python里,浮點數(shù)分為兩類,一種是普通的由數(shù)字和小數(shù)點組成的,如1.0、2.3等。這是由科學計數(shù)法表示的浮點數(shù)。另外一種是由數(shù)字、小數(shù)點以及科學計數(shù)標志e或E組成,如:2.1e10則表示2.1ⅹ1010。浮點類型●浮點數(shù)由整數(shù)部分和小數(shù)部分組成●浮點數(shù)儲存不精確性使用浮點數(shù)進行計算時,可能會出現(xiàn)小數(shù)位數(shù)不確定的情況解決方案:導入模塊decimal1.6.3字符串類型字符串又被稱為不可變的字符序列,可以使用單引號‘’雙引號“”三引號“‘’”或“““”””來定義,單引號和雙引號定義的字符串必須在一行,三引號定義的字符串可以分布在連續(xù)的多行1.6.4布爾型類型在Python中,有一種特殊的數(shù)據(jù)類型叫布爾型(bool),該類型只有兩種取值:True和False分別代表真和假。實際上,可以把True和False看成Python內(nèi)置的變量名,值分別為1和0。因為實際上True的值就是1,而False則為01.6.5實現(xiàn)不同類型數(shù)據(jù)的轉(zhuǎn)換類型轉(zhuǎn)換是一種采用一種類型的數(shù)據(jù)對象并創(chuàng)建多種類型的等效數(shù)據(jù)對象的操作。1.7認識常用運算1.7.1算數(shù)運算Python中常見的算數(shù)運算有加、減、乘、除、求余、取整、冪運算等。1.7.2數(shù)值運算函數(shù)除了基本的算數(shù)運算,Python以函數(shù)形式提供了一些數(shù)值運算,例如四舍五入函數(shù)、最大值,最小值等。在使用math庫前,要用import導入該math庫,調(diào)用時用math.函數(shù)名(參數(shù))。1.7.3賦值運算符賦值運算的功能是:將一個表達式或?qū)ο筚x給一個左值,其中左值必須是一個可修改的值,不能為一個常量?!?”是基本的賦值運算符,此外“=”可與算術運算符組合成復合賦值運算符。Python中的復合賦值運算符有:+=、-=、*=、/=、//=、**=,他們的功能相似,例如“a+=b”等價于“a=a+b”,“a-=b”等價于“a=a-b”,諸如此類。1.7.4關系運算符邏輯運算符為and(與,全真才真)、or(或,全假才假)、not(非)用于邏輯運算、判斷表達式的True或者False,通常與流程控制一起使用1.7.5邏輯運算符邏輯運算符為and(與,全真才真)、or(或,全假才假)、not(非)用于邏輯運算、判斷表達式的True或者False,通常與流程控制一起使用。1.7.6運算優(yōu)先級上面學習了算數(shù)運算、賦值運算、位運算、比較運算、邏輯運算等,當遇到復雜的表達式時,就需要根據(jù)運算優(yōu)先級決定先做什么運算,在Python中各類運算的優(yōu)先級規(guī)則從高到低依次如附表7-11所示2、程序的基本結(jié)構在程序設計中,語句可以按照結(jié)構化程序設計的思想構成三種基本結(jié)構,它們分別是順序結(jié)構、分支結(jié)構和循環(huán)結(jié)構。為方便描述程序的結(jié)構關系會使用程序流程圖。一個流程從開始符開始,以結(jié)束符結(jié)束。處理流程需以單一入口和單一出口繪制,要畫出規(guī)范的流程圖,最基本的就是流程圖的形狀一致,字號統(tǒng)一2.1順序結(jié)構順序結(jié)構指的是按照指令順序依次執(zhí)行每一條語句。例如,你和計算機進行對話:1計算機問道:你的愛好是什么?請用戶輸入2計算機顯示:你的愛好是(用戶輸入的內(nèi)容)3計算機問道:你有欣賞的明星嗎?請用戶輸入4計算機顯示:我也喜歡(顯示用戶輸入的內(nèi)容)2.2選擇結(jié)構選擇結(jié)構指的是根據(jù)判斷條件,只執(zhí)行滿足條件的部分語句,并且只執(zhí)行一次。2.2.1雙分支選擇結(jié)構用if語句可以構成選擇結(jié)構,它根據(jù)給定的條件進行判斷,以決定執(zhí)行某個分支程序段。如圖7-8所示為一個雙分支選擇結(jié)構.例如從鍵盤上輸入一個數(shù),判斷這個數(shù)是奇數(shù)還是偶數(shù)。如果輸入的數(shù)是偶數(shù),則執(zhí)行條件為真的分支,顯示該數(shù)是偶數(shù);如果輸入的數(shù)是奇數(shù),則執(zhí)行條件為假的分支,顯示該數(shù)是奇數(shù)。該程序的流程圖例如,要制作一個簡單的加法運算判斷程序,可以由random函數(shù)隨機生成兩個整數(shù),如果用戶輸入的值與計算結(jié)果一致,則顯示回答正確,否則顯示回答錯誤。通過調(diào)用random模塊可以生成隨機數(shù),其中random.uniform(起始值,終止值),例如random.uniform(1,50)生成的是1-50之間的隨機浮點數(shù),如果要生成隨機整數(shù)可以使用int(random.uniform(1,50))進行轉(zhuǎn)換,也可以直接使用random.randint(起始值,終止值)。有時會遇到邏輯與邏輯或共同使用的多條件判斷,比如生活中的閏年分為普通閏年和世紀閏年,其判斷方法為:公歷年份是4的倍數(shù),且不是100的倍數(shù),為普通閏年。公歷年份是整百數(shù),且必須是400的倍數(shù)才是世紀閏年。歸結(jié)起來就是通常說的:四年一閏;百年不閏,四百年再閏。如果用變量year表示年份,則閏年的判斷條件為:year%400==0oryear%4==0andyear%100!=0,此表達式中同時包含了邏輯運算的與或非三種情況,屬于非常典型的案例2.2.2認識多分支結(jié)構在前面的學習中我們學會了隨機數(shù)的加法運算,那如果想進行減法乘法等隨機運算,用多分支結(jié)構就能實現(xiàn)。此種情況下,就涉及多種選擇,在Python中我們用if….elif….else…語句進行多分支選擇結(jié)構的描述.例如可以用1-4個數(shù)字代表加減乘除四種運算,random.randint(1,4)可以生成一種對應的運算符號,程序中規(guī)定每個數(shù)字代表的運算,這樣就可以得到不同計算法則的隨機數(shù)運算程序。如果想要生成更多的運算,擴大random.randint(1,n)中n的范圍即可2.2.3選擇結(jié)構的嵌套在學習構成三角形的形狀時,我們知道常見的三角形按邊可以劃分為等邊三角形、等腰三角形、直角三角形和一般三角形,如果從鍵盤上輸入三個數(shù)代表三角形的三條邊,首先判讀是否能夠構成三角形,如果能構成三角形,則判斷三角形的形狀;不能構成則提示不能構成三角形。因此首先要進行能夠構成三角形的判斷,如果能夠構成三角形再進一步判斷是什么類型的三角形,因此是否構成三角形和判斷三角形的形狀之間構成嵌套關系。嵌套的if語句是指在if語句內(nèi)有其他的if語句2.3循環(huán)結(jié)構循環(huán)結(jié)構指的是只要滿足判斷條件就反復執(zhí)行循環(huán)體,直到不滿足條件時退出循環(huán),程序結(jié)束。常見的循環(huán)結(jié)構有while循環(huán)結(jié)構和for循環(huán)結(jié)構2.3.1While循環(huán)結(jié)構介紹While循環(huán)中通常包含了循環(huán)變量初值、循環(huán)條件、循環(huán)體、循環(huán)變量的變化這四個關鍵點。在計算s=1+2+3+...+n的和(其中n由鍵盤輸入)中,可以看到值從1變到n,這是一個循環(huán)過程,先設計變量s為0,再設計一個循環(huán)變量m,它循環(huán)n次,每次把m的值加1,并累積到變量s中去,就可以計算出結(jié)果,此外,while循環(huán)可用于不確定循環(huán)次數(shù)情況下的循環(huán),比如做完整性約束判斷,在用戶注冊時需要輸入昵稱、手機號碼,密碼等,但是并不確定什么時候用戶輸入的值是滿足條件的,所以這種循環(huán)為不確定循環(huán)次數(shù)的循環(huán)。2.3.2for循環(huán)結(jié)構for循環(huán)是編程語言中一種循環(huán)語句,而\t"/item/for%E5%BE%AA%E7%8E%AF/_blank"循環(huán)語句由\t"/item/for%E5%BE%AA%E7%8E%AF/_blank"循環(huán)體及循環(huán)的判定\t"/item/for%E5%BE%AA%E7%8E%AF/_blank"條件兩部分組成,一般形式為:foriinRange(變量的初值,變量的終值,步長):語句塊如foriinrange(1,10,1):print(i)foriinrange(1,10,1)等同于這三條語句i=1,i<10,i=i+1如果要打印年度日歷,可以通過importcalendar導入日歷庫,通過calendar.month(年份,月份)即可打印某年某月的日歷,如果想要打印多個月份的日歷,可以使用for循環(huán)2.3.3循環(huán)嵌套循環(huán)里面再嵌套一重循環(huán)叫做雙重循環(huán),嵌套兩層以上的叫多重循環(huán)。Python程序單層循環(huán)結(jié)構常常難以解決更加復雜的問題,這就要求我們進一步學會使用循環(huán)語句的嵌套結(jié)構來處理相對復雜的問題。通過前面的學習,我們知道Python循環(huán)結(jié)構主要有for
循環(huán)和while循環(huán)??梢詫hile循環(huán)結(jié)構嵌套進for循環(huán)結(jié)構中,也可以將for循環(huán)結(jié)構嵌套進whil
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆陜西省洛南縣數(shù)學高三上期末經(jīng)典模擬試題含解析
- 2025屆四川省瀘州市瀘縣五中生物高三上期末質(zhì)量跟蹤監(jiān)視試題含解析
- 2025屆云南省邵通市水富縣云天化中學語文高三第一學期期末檢測試題含解析
- 安徽省阜陽市成效中學2025屆數(shù)學高三上期末教學質(zhì)量檢測試題含解析
- 2025屆福建省永春華僑中學高三英語第一學期期末統(tǒng)考模擬試題含解析
- 2025屆江蘇睢寧市生物高一第一學期期末教學質(zhì)量檢測試題含解析
- 安徽省蚌埠市2025屆高二數(shù)學第一學期期末考試模擬試題含解析
- 池州市重點中學2025屆高二上數(shù)學期末學業(yè)水平測試試題含解析
- 2025屆上海市延安中學生物高三上期末聯(lián)考模擬試題含解析
- 建筑工程施工合同(2篇)
- 微機原理與單片機接口技術課后題答案詳解余發(fā)山楊凌霄主編資料
- SolidWorks蝸桿參數(shù)方程式驅(qū)動建模
- 河北省建設工程材料設備推廣、限制使用和淘汰產(chǎn)品目錄(2010年版)
- 完美版用友U8數(shù)據(jù)字典(包含列定義)
- 護理文書質(zhì)控 ppt課件
- 機械制圖基礎知識完整版
- (醫(yī)學PPT課件)ERCP中的操作技巧
- 處方管理辦法試題及答案
- 廣東省高考考試大綱(地理)
- 《油品分析》習題集及答案第二章 試題答案
- 肛漏病(肛瘺)中醫(yī)臨床路徑
評論
0/150
提交評論