資源 | |||||
上課工具 | 線上黑板( Online blackboard) | 廣播教學 | 上課錄影影片 | Goole輸入法(Input:exe) | |
證照考試:商用數據應用師 | 考試題庫 (從中約抽70題) | 報名證照相關說明與方法 | 考試方式:100題單選題,每題1分,70分及格 | 考試指定用書 | |
證照考試:SAS 機器學習國際認證 | 考試題庫 | 報名證照相關說明與方法 | 先上課再考試。考試方式:50~55 題選擇題與填充題,考試語言:英文,通過標準:65%答對即通過 | 考試指定軟體:SAS Viya Virtual Lab | |
求職相關參考網站 | 111年上市櫃公司員工平均薪資排名 | 【ESG-InfoHub】揭露企業非主管職務之員工薪資 | 台灣夜市小店變億級女裝王國,靠的是數據分析 | 突破困境!實體店面的逆轉武器:數據應用 | |
數據集,資料集,dataset | UCI的各種資料集 | Kaggle的各種資料集 | 考試方式:100題單選題,每題1分,70分及格 | 考試指定用書 | |
上課參考教材 | 書籍:跨領域學 Python:資料科學基礎養成 | 書籍:Python 資料科學與人工智慧應用實務 | 書籍:一行指令學Python:用機器學習掌握人工智慧 | ||
書籍:用Pandas掌握商務大數據分析 | 進階書籍:Python商業數據分析:零售和電子商務案例 | pandas官網(英文) | w3schools的pandas教學(英文) | ||
pandas參考教材 | w3Cschool的pandas教學(中文) | Steam教學網-python | 蓋若pandas 教程 | pandas的df的操作函數 | |
colab繪圖如何顯示中文,方法1 |
☎#colab顯示繁體中文,方法1
問題:matplotlib繪圖,會發生中文無法顯示的問題 參考:colab繪圖如何顯示中文 ☎程式碼: #-------------------------------- # colab繪圖顯示繁體中文 #-------------------------------- import matplotlib # 先下載台北黑體字型 !wget -O taipei_sans_tc_beta.ttf https://drive.google.com/uc?id=1eGAsTN1HBpJAkeVM57_C7ccp7hbgSz3_&export=download import matplotlib # 新增字體 matplotlib.font_manager.fontManager.addfont('taipei_sans_tc_beta.ttf') # 將 font-family 設為 Taipei Sans TC Beta # 設定完後,之後的圖表都可以顯示中文了 matplotlib.rc('font', family='Taipei Sans TC Beta') |
||||
colab繪圖如何顯示中文,方法2 |
☎#colab顯示繁體中文,方法2
☎程式碼: #-------------------------------------- # 課本的中文處理 #-------------------------------------- import matplotlib as mpl import matplotlib.font_manager as fm !wget "https://www.wfonts.com/download/data/2014/06/01/simhei/simhei.zip" !unzip "simhei.zip" !rm "simhei.zip" fm.fontManager.addfont('SimHei.ttf') mpl.rc('font', family='SimHei') # 這一行能讓字體變得清晰 %config InlineBackend.figure_format = 'retina' |
||||
windows的spyder繪圖如何顯示中文 |
☎解決:windows的spyder,會發生中文無法顯示的問題 參考:windows繪圖如何顯示中文 ☎程式碼: #在windows 10 的spyder,繪圖如何顯示中文 #使用微軟正黑體(Microsoft JhengHei) plt.rcParams['font.sans-serif'] = ['Microsoft JhengHei'] #有些中文字體在碰到負號時,會無法正常顯示,尤其是內建的字體,加入以下語法就可以解決『負號無法顯示』問題 plt.rcParams['axes.unicode_minus'] = False |
||||
在colab如何更改目錄 |
☎解決:在colab如何更改目錄的問題 ☎程式碼: import os os.chdir("/content/drive/MyDrive/Colab Notebooks") !ls |
||||
解決簡體字csv造成亂碼 |
☎解決簡體字csv,打開後都是亂碼的問題: 第2 種方式: (1)先執行Excel 軟體,新增空白活頁簿, (2)然後在上方功能選項中點選「資料」➜「取得外部資料」➜ 「從文字檔」 → 「選擇csv文件」, 選擇你的CSV 檔, 在「匯入字串精靈」對話框中選擇檔案原始格式65001:Unicode(UTF-8) 即可。 若是utf-8還是有亂碼,再改成 在「匯入字串精靈」對話框中選擇檔案原始格式54986:簡體中文(GB18080) 即可。 (3)打勾:我的資料有標題 (4)分隔符哈:逗號 |
||||
程式模板 |
☎存入excel檔案,並且畫柱狀圖
|
||||
程式模板chp8-6.樞紐分析表的必要指令:展開 |
☎輸出excel檔案:建立3個資料表sheet(英文成績,數學成績,中文成績)
|
||||
打開chrome網頁線上英文字典功能 |
☎如何安裝google chrome的網頁線上英文字典工具: ➜google chrome的右上角工具➜更多工具➜擴充功能 ➜左上角主選單➜開啟chrome線上應用程式商店 ➜勾選:google製作,免費 ➜搜尋:google dictionary➜安裝 ➜到chrome右上擴充功能➜點按google dictionary的『詳細資料』➜擴充功能選項 ➜my language=chinese ➜打勾2個:Pop-up definitions: (1)反白單字翻譯:Display pop-up when I double-click a word (2)ctrl+拖曵整段翻譯: Display pop-up when I select a word or phrase |
||||
上課用excel | 學生成績-chinese | 學生成績-有缺值-chinese | 學生成績-物理歷史-chinese | 學生成績-amy-simon-chinese | |
學生成績-生日-chinese | 學生成績-分組-chinese | 人事資料-chinese | 男女時薪-chinese | ||
學生成績-english | 學生成績-有缺值-english | 學生成績-分組-english | 圖書資料-chinese | ||
上課用csv | 小費tips-chinese | 小費tips-english | 學生成績-chinese | 學生成績-english | |
圖書資料-chinese | |||||
上課用其它資料庫 | mySQL-ch09 | SQLite-student | json-學生成績 | xml-personnel | |
課本商業範例資料庫 | 商業銷售分析-sales csv | 系所生源分析-excel | 股市分析-台積電聯發科股票線型-excel | 問卷資料分析-excel | |
pandas參考教材 | 十分鐘入門 Pandas(英文) | 十分鐘入門 Pandas(英文) | 10分鐘的Pandas入門-繁中版 | 十分鐘入門 Pandas(中文) | |
pandas參考教材 | pandas官網全部章節翻譯 | pandas官網全部章節翻譯 | |||
pandas參考教材(英文) | kaggle pandas教學 | 100 pandas tricks to save you time and energy | 官網0.22.0:pandas documentation | ||
pandas參考教材(中文) | Pandas 101:資料分析的基石 | 資料科學家的pandas 實戰手冊:掌握40 個實用 | 簡明 Python Pandas 入門教學 | 資料分析必懂的Pandas DataFrame處理雙維度資料方法 | |
pandas速查手冊 | pandas 速查手册 - 盖若 | Pandas速查手冊中文版 - 知乎專欄 | Pandas速查手冊中文版- 騰訊雲開發者社區 | ||
pandas速查手冊 | Pandas中DataFrame基本函數整理(全) | Pandas 魔法筆記(1)-常用招式總覽 | pandas的df的操作函數 | ||
資料集dataset | 小費資料集Tips Dataset(csv) | kaggle小費資料集範例A Waiter's Tips example | 【視覺化】小費(tips)資料集分析 | 小費(tips)資料集提取和檢視相應資料 | |
SQL語法 | SQL語法教程 | pandas vs SQL | |||
資料分析4大模組(runoob) | numpy | pandas | matplotlib | scipy | |
w3c、w3school、w3cschool、runoob、w3capi比較 | runoob流量監控儀表板 | ||||
w3school vs runoob |
1.w3school中文版是直接google翻譯英文版 2.runoob.com翻譯自英文版w3schools,但重新排版 3.runoob = run + noob(菜鳥,小白) 4.runoob是python,html,javascript中文版最好的教學網 |
||||
官網 | python官網 | vscode官網 | |||
python 教學網站 | python 3(官網手冊中文) | python 3教學(中文) | python 3教學(中文) | 簡易1小時教學 | |
w3school(英文版) | |||||
線上執行python online |
https://www.python.org/shell/(建議用這個) https://repl.it/languages/python3 |
||||
用Anacond寫python(*建議使用) |
作業(homework) | |||||
作業1 | |||||
作業2 | |||||
作業3 |
chp1-1.前言 | |||||
1.課程簡介投影片 | 2.學習程式的3種方法 | ||||
1.現今企業的數據有哪些 | 2.運用數據三階段 | 3.資料生產的四步驟 | 3.資料最基本的三個概念 | ||
5.什麼是大數據Big Data | 6.大數據分析與傳統商業分析的差異 | 7.大數據的分析步驟 | 8.視覺化常用工具 | ||
9.什麼是大數據Big Data | 10.大數據分析與傳統商業分析的差異 | 11.大數據的分析步驟 | 12.大數據的類型:結構化、非結構化、半結構化資料 | ||
1.現今企業的數據有哪些 |
1.現今企業的數據有哪些: (1)所謂大數據,即是透過不同來源、渠道取得的海量數據資料, 現今企業如果想做數據蒐集的方法變得非常多元,包括: (2)來自用戶的第一方數據: ☎傳統的用戶資料建檔、問卷調查, ☎網頁的瀏覽行為等數據的追蹤, ☎App應用程式的瀏覽行為等數據的追蹤、 ☎物聯網IoT設備傳遞的數據等, 這些都是可以蒐集到。 還有更多可捕捉用戶站外資訊的非第一方數據也漸漸被重視, (3)透過交換共享得到的第二方數據: ☎第二方數據 (也稱為第二方或 2P 數據):是另一個同行公司收集的數據,但可由另一家公司通過購買或協作訪問。 ☎營銷人員在希望擴展其營銷資料庫以吸引新的潛在客戶時,通常會購買它。 ☎例如,如果一個為女性製作的服裝品牌決定增加一個男裝系列,並且需要相關的目標來行銷,就可以向外同行公司購買男裝的數據資料庫。 (4)任何與商業需求有關的第三方數據: ☎第三方數據 (也稱為第三方或3P數據):是來自第三方的數據,該第三方已聚合了多個數據源並使其可供購買。 ☎第三方數據的缺點:是它可能缺乏準確性和品質,因此重要的是了解數據來自何處以及數據使用年限. (5)比較:第一方、第二方和第三方數據之間的差別: 第一方、第二方和第三方數據之間的主要區別在於:『來源』。 ☎第一方數據:由其『存儲/擁有的公司』收集。 ☎第二方數據:由『同行公司』收集,並由另一家公司購買(或通過合作協定與他們共用)。 ☎第三方數據:是從『多個未知來源』收集的,並由一家公司購買。 (6)參考文獻: 1.第一方、第二方、第三方和零數據對廣告商意味著什麼 2.分析大數據在各領域的應用 |
||||
2.運用數據三階段 |
1.市場上的數據需求,主要分為四個階段: ☎數據蒐集、 ☎數據分析、 ☎數據應用 (1)數據蒐集:蒐集第一方、第二方和第三方數據 ☎傳統的用戶資料建檔、問卷調查, ☎網頁的瀏覽行為等數據的追蹤, ☎App應用程式的瀏覽行為等數據的追蹤、 ☎物聯網IoT設備傳遞的數據等, ☎第二方數據:向同行公司購買數據。 ☎第三方數據:向『其他管道,如:數據收集公司』購買。 (2)數據分析:原始數據(raw data)要先處理過 ☎透過多元渠道獲取大量數據資料往往是原始數據(raw data),無法直接使用, ☎必須經過一層又一層的處理過程 ☎處理方法1:數據檢查(data inspecting) ☎處理方法2:數據清理(data cleansing) ☎處理方法3:數據轉換(data transforming) (2-1)處理方法2:數據清理(data cleansing) A.資料清理是資料前處理的第一步,需要先將資料中的問題處理。 B.收載資料時一定會遇到各式髒資料,有的資料樣態會導致無法轉入資料庫,而有的資料會在塞入資料庫時,出現錯位、亂碼等各式各樣非預期的情況,此時倉儲資料清理的準則變得極為重要,因將攸關於整個系統資料的統一。 C.資料清理的準則設定可以從三個角度著手: ☎「檔案類型」問題的清理 ☎「欄位型態」問題的清理 ☎「資料邏輯」問題的清理 D.☎數據清洗:按照一定的規則剔除或者填充不滿足實際需要的業務資料。 E.☎清洗主要包括三部分的內容: 第一部分是測試資料、 第二個是錯誤的資料, 第三個是缺失的資料。 錯誤的資料我們可以關注:『資料是否重複』、格式是否『錯誤、欄位描述』的資訊是否錯誤。 D.(2-1-a)例如:資料來源檔案類型:純文字檔 ☎資料內容以純文字的方式儲存的特色: 欄位與欄位之間以特定符號作為分隔, 例如:逗號、分號或|等等, ☎較常被使用的是「逗號」 ☎可能發生的問題: 然而使用各符號作為分隔時,會遇到其中一種情況是:以逗號為例,如該欄位內容包含逗號,將會造成欄位內容分割時發生錯誤,但此逗號明明屬於資料的內容,卻被誤認為是分隔符號,使得分割完的資料對應到錯誤的欄位 ☎解決的辦法: 將內容值前後都加上雙引號後,再以逗號分隔串連各欄位資料 D.(2-1-a)例如:檔案類型:資料庫 ☎讀取資料庫文字欄位型態的資料時,內容包含換行符號,系統就認為這筆資料已經讀取完,則換行符號後面的資料內容即為下一筆資料的開頭,無法完整的將一筆資料讀取進來。 ☎解決辦法:是移除換行符號,若需要保留換行符號, D.(2-1-b)例如:欄位型態:日期 ☎格式:同時出現以 斜線分隔(YYYY/MM/DD)、無分隔符號(YYYYMMDD) 或 連接號(YYYY-MM-DD) 的日期格式。 ☎處理方式:透過判斷式將內容使用的符號,或沒有符號的純文字格式,換成資料庫可接受的日期格式。 ☎西元年/民國年:同一欄位參雜西元年與民國年的日期。 ☎處理方式:若以西元年格式存入資料庫,年若小於1911,則將 年份+1911 ;年若大於1911,則直接轉入。 ☎值異常:例如日期出現2月30日、年份早於1911年等,或是不可為NULL的欄位卻出現NULL值等非正常的日期。 ☎處理方式:異常的日期通常已經無法追溯到正確的值,或來源的日期就是髒資料,可統一為特定日期(如:1911年1月1日),日後看到即可確定來源的資料因有異常而清理過。 D.(2-1-b)例如:欄位型態:特殊字元 ☎說明:文字是最容易造成轉檔失敗的型態,因為此型態可容許輸入任何類型的字元,例如:特殊字元,但資料庫本身並非接納的了所有字元,較特別的會無法轉入,或需要做其他特殊的轉換才能收載。 ☎處理方式:必須找出那一筆,替換掉『特殊字元』後,再登錄進資料庫。 D.(2-1-c)例如:資料邏輯:縣市代碼 ☎台灣曾經經歷過縣市升格為直轄市,有更換過縣市的中文名稱,那麼資料也須跟著配合調整。 ☎處理方式:是做一張新舊對照縣市代碼與名稱的轉換表,日後資料若有縣市資訊需求,即可勾稽此資料表,讓縣市升格前與後的資料,能自由並適當的轉換,得到想要的資訊。 D.(2-1-c)例如:資料邏輯:身分證號的規則判斷 ☎身分證號的編碼有固定的規則, 第一碼是初次戶籍所在的縣市代碼, 第二碼是性別(1:男性;2:女性), 第三到九碼是流水碼, 最後一碼第十碼是檢查碼,檢查碼會以第一到第九碼之英數字組合經過權重計算而得。 ☎若要確認身分證是否有效,可依據這些規則去做判斷。 (2-3)處理方法3:數據轉換(data transforming) A.☎數據轉化:按照一定的規則、技術手段轉化不同格式,或者顆粒度不同的資料。 B.(1)例如:格式的轉換,比如說時間格式,在不同的業務系統可能會有不同的時間格式,但是到我們大資料系統,為了方便下游資料的使用,我們會統一轉換成一種資料格式。包括一些欄位編碼也是這樣。 C.(2)資料顆粒度的轉換:我們在DW層的資料明細層到資料應用層的整個過程,都是顆粒度不斷轉化的一個過程。還包括一些業務規則、商務規則和一些指標。 ☎補充:數據顆粒度:資料顆粒度指數據的細緻程度。 資料顆粒度越高,細緻程度越高,意味著可以進行更準確的分析。 然而,需要指出的是,資料顆粒度直接決定資料庫需要的儲存空間。 高顆粒度的資料需要更多儲存空間;如果資料顆粒度太高,能夠識別出背後的資料,隱私相關挑戰也會加大。 (4)參考文獻: 1.資料指標體系(1)如何理解資料顆粒度、維度以及指標 |
||||
3.資料生產的四步驟 |
1.資料生產的四步驟: • 資料指標體系搭建 • 資料獲取 • 資料存儲 • 數據清洗 2.建立資料後,即可開始資料分析 |
||||
4.資料最基本的三個概念 |
1.資料最基本的三個概念: ☎顆粒度 ☎維度 ☎指標 (1)顆粒度 ☎資料的顆粒度是指數據的 “粗細”,也就是我們看資料的視野的大小,或者說格局的大小。 ☎例如: 一個電商公司,同樣是看GMV(總銷售額),CEO關注的可能是『今年總的GMV』是多少, 而業務老闆關注的可能是『每月的GMV』如何, 具體到某個小團隊,關注的點可能就是某些商品,『每天的GMV』如何了。 ☎資料顆粒度最常見的劃分是:時間 (2)維度 ☎資料的維度:是指看待事物不同的角度。 ☎是從不同角度來看一件事,會得到不同的結論。 ☎在做資料分析時也是一樣的。分析一個活動,或者一個策略對用戶的吸引時,如果我們以『新增用戶數』作為分析的指標(也就是展開方式,分析點), ☎可以列為『維度』進行拆分的項目: • 時間維度:拆分為早晨、中午、晚上 • 性別維度:男性、女性、未知 • 受教育程度:小學、中學、大學、研究生、博士 ☎通過維度的分解,我們可以看到每個部分的變動,和整體的變化趨勢是否相同,是否存在不同,而哪些不同點往往會成為我們接下來分析的重點。 ☎顆粒度和維度的『相似性』:例如“時間”這個要素,在兩個部分都出現了 ☎顆粒度和維度的『差異性』:不同在於拆分的方式不同 • 顆粒度:是一種縱向的聚合,類似於金字塔的形狀,不同的顆粒度都代表著不同的聚合程度 • 維度:是一種橫向拆分的模式。類似于把鏡子打碎成不同的部分,每個部分都是獨立的,把所有部分合在一起又能拼成完整的整體 (2-1)指標 ☎資料指標:是衡量事物發展方式及程度的一種單位或者方法,一般通過對原始資料進行加減乘除等操作生成得到。 ☎例如:長度,是把所有部分加在一起得到的一種衡量外在大小的單位。 ☎列舉一些常見網路流量的資料指標: • DAU(daily active user):每天,“活躍”過的用戶數的加總,count(distinct user_id) group by day • MAU(monthly active user):每個月,“活躍”過的用戶的加總,count(distinct user_id) group by month • 留存率(次日、7日、30日):今天“活躍”過的用戶的總量,一段時間後的某個時間點,還活躍的比例 • 轉化率:兩個有遞進的環節之間,從上層到下層用戶轉化的比例,例如:CTR=實際點擊次數/展示量 (4)參考文獻: 1.大數據前的資料清理 2.分析大數據在各領域的應用 |
||||
5.什麼是大數據Big Data |
1.為什麼有大數據的問題 現在的企業資料,因為以下的興起,造成大量數據的需求: ☎網路網路資料(社交網站,交易資料) ☎物聯網IoT, Internet of Things ☎感測器sensor 2.大資料的來源 資料來源主要分為以下三類: (1)社交數據: ☎顧名思義,社交資料來源於社交媒體評論、發帖、圖片以及與日俱增的視頻檔。隨著全球 4G 和 5G 蜂窩網路的普及,到 2023 年,全球手機視頻使用者將增至 27.2 億。 ☎雖然社交媒體及其使用趨勢瞬息萬變、難以預測,但作為數位資料的主要來源,其穩定增長趨勢是不會改變的。 (2)機器數據: ☎物聯網設備和機器都配有感測器,能夠發送和接收數位資料。物聯網感測器能夠幫助企業採集和處理來自整個企業的設備、工具和裝置的機器資料。 ☎從天氣和交通感測器到安全監控,全球範圍內的資料生成設備正在迅速增多。 ☎據 IDC 估計,到 2025 年,全球物聯網設備數量將超過 400 億,生成的資料量幾乎占全球數位資料總量的一半。 (3)交易資料: ☎交易資料是世界上發展速度和增長速度最快的資料。 ☎例如,一家大型國際零售商每小時處理超過 100 萬筆客戶交易,全球那麼多採購和銀行交易,生成的資料量會有多麼驚人。 ☎此外,交易資料越來越多地由『半結構化』資料組成,包括圖片和注釋等,使得管理和處理難度不斷增加。 3.大數據的五大特性: (1)大數據的3V特性: ☎資料量(Volume) ☎資料類型(Variety)。 ☎資料傳輸速度(Velocity) ☎Volume(資料量) 無論是天文學、生物醫療、金融、聯網物間連線、社群互動…每分每秒都正在生成龐大的數據量,如同上述所說的 TB、PB、EB 規模單位。 ☎Variety(資料多元性) 真正困難的問題在於分析多樣化的資料:從文字、位置、語音、影像、圖片、交易數據、類比訊號… 等結構化與非結構化包羅萬象的資料,彼此間能進行交互分析、尋找數據間的關聯性。 ☎Velocity(資料即時性) 大數據亦強調資料的時效性。隨著使用者每秒都在產生大量的數據回饋,過去三五年的資料已毫無用處。 一旦資料串流到運算伺服器,企業便須立即進行分析、即時得到結果並立即做出反應修正,才能發揮資料的最大價值。 (2)大數據的4V特性: ☎資料量(Volume) ☎資料類型(Variety) ☎資料傳輸速度(Velocity) ☎資料真實性(Veracity) 在3V成為大數據的主要定義後,隨著儲存資料的成本下降、取得成本也下降,大數據發展出第四個特性:Veracity,意旨除了資料量,也需要確認資料的真實性,過濾掉造假的數據與異常值後,分析出來的結果才能達到準確預測的目的。 (3)大數據的5V特性: ☎資料量(Volume) ☎資料類型(Variety) ☎資料傳輸速度(Velocity) ☎資料真實性(Veracity) ☎價值(Value) 大量、快速取得,來源多樣的資料,經過真實性考驗之後,擁有一定的價值,是大數據的核心架構 4.多大的資料量才算大數據Big Data ☎資料量要多大才能說是大數據? 根據維基百科的定義,資料大小從幾TB(Terabyte)到幾PB(Petabyte)不等 5參考文獻: (1).什麼是大數據 (2).巨量資料(wiki) (3).大數據到底是什麼意思?事實上,它是一種精神 (4).認識大數據定義、分析與工具 (5).大數據,不只是很大的數據 |
||||
6.大數據分析與傳統商業分析的差異 |
1.大數據分析與傳統商業分析的差異 (1)大數據分析: ☎分析方法:使用原始資料➜統計分析➜產生視覺化圖表➜產生報表 ☎使用技術:原始資料,大數據,使用程式碼(python/R)進行結構化分析 ☎預測方法:找出數據間的關聯性➜建立預測模型➜完成預測 2.參考文獻: (1).大數據,不只是很大的數據 |
||||
7.大數據的分析步驟 |
1.大數據的分析步驟:取得,儲存,運算,視覺化 ☎大數據分析第一步:取得 數據隨時隨地都在產生,就連你上班時的行走路線,都可以成為商家選擇新店地址的參考資料。若是擁有大量使用者的企業,蒐集使用者的活動紀錄就可達到以數據預測未來的目標;若是較小型的企業,則可主動邀請使用者填寫問卷,逐步累積資訊量。 ☎大數據分析第二步:儲存 由於資料量龐大,突破儲存技術式處理大數據的第一個難關。因此處理大數據時多使用分散式處理系統,透過分割資料與備份儲存,突破記憶體過小的障礙。 ☎大數據分析第三步:運算 為達成預測未來的目的,機器可以透過分類、迴歸分析、排序、關聯分析等方式找出其中規律,並運用決策樹、遺傳演算法、人工神經網路等模型進行計算。 ☎大數據分析第四步:視覺化 經過分析後的數據仍是數字與列表,不易閱讀。因此可搭配視覺化工具,將數據轉化為較容易閱讀與理解的形式。 2.參考文獻: (1).認識大數據定義、分析與工具 |
||||
8.視覺化常用工具 |
1.三大視覺化工具:Power BI,Tableau,Data Studio 功能:都能夠製作Dashboard(互動儀表板,報表平台) (1)Power BI:微軟Microsoft (1-1)費用: ☎免費版:若要編輯或瀏覽 Power BI Dashboard 僅能確保每個使用者都有在桌面下載 Power BI。 但免費PC版 Power BI 僅能在 Windows 上使用, Mac 使用者僅能夠過網頁/付費方式使用 ☎付費版:Power BI 可透過企業全體購買 Pro License(每個月300元),進而能夠做到網頁版共用。 ☎付費版:公司內可以購買整個 Office 365 package(已經包含 Power BI Pro License),以利內部資料互通,大家也不用另外在電腦下載應用程式,直接網路編輯與瀏覽即可,Mac 使用者也能進而編輯 ☎付費版:Power BI Premium,每月每個人600元。 ☎Power BI定價參考網址 (1-2)功能: Power BI 基本上功能與Tableau大同小異。 Power BI的操作比較簡單,更直覺化(Tableau操作較複雜)。 Power BI同時可支援 Python & R 的視覺化工具, Power BI 的 DAX 語法相較 Tableau 好懂。 (2)Tableau (2-1)費用: ☎Tableau Public 是一個免費的平台 ☎Tableau Prep 免費試用30天 ☎Tableau Desktop 免費試用14天 ☎Tableau Server 免費試用 ☎CRM Analytics(原稱 Tableau CRM) 認識大數據定義、分析與工具 ☎Tableau 在企業級規模部署時Power BI比較便宜,因為雖然Power BI 隨附於O365中,但若要企業級部署,考慮Power BI Pro與Power BI Premium 間的功能差距,若真的要能做到 Tableau Server 大部分的功能,是一定需要 Premium 的,不然會受到算力、數據量大小、協作功能等的差距影響,很難做到企業級部署。 而Power BI Premium 在2021/02時所記錄的起始報價為 台幣 150,120。 Tableau的產品生態: (2-2)功能: ☎功能強大。 ☎2020/01年時統計,世界500強企業裡面96%是Tableau的客戶。 (3)Data Studio (3-1)費用: ☎google雲端軟體,完全免費的平台 (3-2)功能: ☎優點:因為 Google 產品大多都是可開權限共享, 所以要結合Google 其他應用程式(Big Query, Google Analytics),就可以直接串接到 Data Studio,因為便利而使用它。 ☎優點:雲端使用,是目前線上最流暢的(因為google產品都是雲端產品),而且可以共同編輯 ☎缺點:功能性而言,現在 Data Studio 在細節調整上還是略輸 Power BI 與 Tableau 一些 2.BI(Business Intelligence,商業智慧)市場分成2類: (1)自助式分析組別: 組織裡面每個人都有能力利用此組別內的BI工具連接數據與探索數據,發表屬於自己的數據見解 例如:Power BI,Tableau,Data Studio (2)報表組別: 大部份情況之下,因需要撰寫大量函式或需要寫SQL,需要由統一專業部門開發,如IT單位 例如:Finereport,Microstrategy 3.參考文獻: (1).Tableau 與 Power BI 完整比較指南 (4).Tableau VS. PowerBI |
||||
9.大數據的類型:結構化、非結構化、半結構化資料 |
1.大數據的類型:結構化、非結構化、半結構化資料 (1)結構化資料:這類資料最容易整理和搜索, ☎主要包括:財務資料、機器日誌、人口統計明細等。 結構化資料很好理解,類似於 Excel 試算表中預定義的行列佈局。 這種結構下的資料很容易分門別類,資料庫設計人員和管理員只需要定義簡單的演算法就能實現搜索和分析。 不過,即使結構化資料數量非常大,也不一定稱得上大資料,因為結構化資料本身比較易於管理,不符合大資料的定義標準。 一直以來,資料庫都是使用 SQL 程式設計語言管理結構化資料。 SQL 是由 IBM 在 20 世紀 70 年代開發的。 (2)非結構化資料: ☎因為web2.0盛行後產生很多非結構資料。 ☎(web 2.0內容:透過網路應用,以使用者為中心,促進網路上人與人間的資訊交換和協同合作) ☎(web 2.0範例:網路社群、網路應用程式、社群網站、部落格、Wiki) ☎資料包括:社交媒體內容、音訊檔、圖片、開放式客戶評論等。 ☎這些資料符合大數據定義中:『大而複雜』的要求,也因此這些資料通常很難用標準的行列關係型數據庫捕獲。 大多數情況下企業若想搜索、管理或分析大量非結構化資料,只能依靠繁瑣的手動流程。 毫無疑問,分析和理解這類資料能夠為企業帶來價值,但是執行成本往往太過高昂。而且,由於耗時太長。 但是因為無法存儲在試算表或關係型數據庫中,所以非結構化資料通常存儲在資料湖、資料倉庫和 NoSQL 資料庫中。 (3)半結構化資料: ☎半結構化資料是結構化資料和非結構化資料的混合體。 ☎例如:電子郵件, 因為其中的正文:屬於非結構化資料, 而寄件者、收件人、主題和日期:屬於結構化資料。 使用地理標記、時間戳記或語義標記的設備也可以同時提供結構化資料和非結構化內容。 3.參考文獻: (1).什麼是大數據 (2).web 2.0 (4).Tableau VS. PowerBI |
||||
範例1-2.數據分析3部曲,與對應的工作職缺(1)研究數據分析的3步驟圖:
|
|||||
|
範例1-3.數據分析常用工具(1)資料分析常用工具:
|
|||||
|
範例1-4.數據相關的證照(1)資料分析相關的證照:中華企業資源規劃學會『商用數據應用師』證照
|
|||||
|
範例1-5.數據分析的內容是什麼?
數據分析的內容主要分三種(統計,比較,預測)
|
|||||
|
chp1.安裝與使用python的四種方法 | |||||
1.使用python的四種方法 | 2.Anaconda下載點 | 3.安裝anaconda | 4.Anaconda cmd指令 | ||
5.建立Anaconda虛擬環境 | 6.使用Spyter編譯器 | 7.網頁版python編輯器jupyter notebook | 8.其它線上雲端可編譯的python平台 | ||
1.前言 |
Python堪稱是大數據與AI時代的最重要程式語言,在資料處理上有著非常重要的地位。而隨著AI的興起,讓傳統的零售業、金融業、製造業、旅遊業,以及政府都爭相投入,無不希望能運用數據分析與預測來協助決策方向,也讓新興的數據分析師、資料分析師成為熱門職業,因此本課程將講解如何使用網絡爬蟲技術以掌握資料爬取分析、視覺化呈現,以及儲存交換應用的關鍵技術。 Python資料處理的三大技術分別是:擷取分析、視覺化呈現與儲存應用。 而其應用的範疇包括:網路爬蟲、資料正規化、資料視覺化、資料儲存與讀取(CSV、Excel、Google試算表、SQLite、MySQL)、批次檔案下載、公開資料應用、API建立、驗證碼辨識。 |
||||
Python大數據分析最重要的四個模組 |
1.Python大數據分析最重要的四個模組 |
||||
2.執行python的四種方法 |
1.要編寫python有三種的方法: 一、方法1:安裝python單純的python 缺點:功能陽春,沒有太多的模組,無法馬上寫大數據分析程式。 安裝網址:python官網下載 二、方法2:安裝Anaconda 優點:會同時安裝python、1000多種數學繪圖模組、Spyder編輯器,能夠支援大數據分析。 缺點:會安裝了很多你用不到的模組,浪費硬碟空間。 安裝網址:到Anacond官網下載安裝 三、方法3:使用python官網線上shell 使用repl線上python 四、方法4:使用google雲端硬碟的雲端軟體:Cola,colaboratory 優點:Google 的 Colab 是一個讓你用網頁瀏覽器就能寫 Python 程式、並且執行的平台。 優點:Colab 提供免費的 GPU 讓你高效運算機器學習與深度學習演算法。 優點:Google Colab 預先幫你安裝好大家最常用的 Python 套件,幫你解決了一半以上的煩惱,讓 Python 新手可以不用在剛起步就學習環境部署的麻煩事。數據分析常用的 Pandas 與 Numpy、資料視覺化好用的 Seaborn 與 Matplotlib、還有機器學習必備的 xgboost 或 Tensorflow,這些都是 Colab 預先安裝好的套件。 不需要再自行安裝套件:(Terminal)輸入 pip install 優點:可以從 Google Drive 取得你要用的檔案、然後透過 Python 程式讀取; 優點:可以與google其它軟體整合,例如:也可以匯入 Google Sheet 的表格資料,然後用你最愛的視覺化套件(例如 Matplotlib)畫出美麗的圖表。 優點:Colab 其中一個厲害的地方就是,你除了可以執行 Python、也能執行 Command Line,只要在 Command Line 指令加上驚嘆號就能做到,像是 !mkdir。你可以在 Colab 裡 Python 程式碼寫到一半的時候,突然加進幾行 Command Line 來操作檔案,完成後,再讓 Python 程式碼接著寫下去,Python 與 Command Line 可以無痛切換。 優點:%%timeit:算出你的程式碼區塊花多少時間執行,分析你的演算法效率時很好用。 優點:%run my_script.py:執行你的另一個 Python 程式,如果你的程式還需要呼叫另一個程式,就需要使用。 |
||||
3.Anaconda下載點 |
|
||||
3.安裝anaconda |
3.安裝anaconda 功能:原始的python功能太陽春,若下載anaconda,則可以提供300多種的科學數學模組,可以提供大數據資料分析 (1)Anaconda是一個免費的Python和R語言的發行版本,用於計算科學(資料科學、機器學習、巨量資料處理和預測分析) (2)因為Anaconda有很多的數據分析模組,所以大數據分析會使用到的『pandas、Numpy、Scipy』python package套件,在anaconda安裝完成時就已經包含在裡面了。 (3)Anaconda中文是森蚺(大蟒蛇)。 1)可以把Anaconda當作是Python的懶人包,除了Python本身(python2, 3) 還包含了Python常用的資料分析、機器學習、視覺化的套件 2).完全開源和免費 3).額外的加速、優化是收費的,但對於學術用途可以申請免費的 License 4).全平台支持:Linux、Windows、Mac 5).支持 Python 2.6、2.7、3.3、3.4,可自由切換, 6).內帶spyder 編譯器(還不錯的spyder編譯器) 7).自帶jupyter notebook 環境 (就是網頁版的python編輯器,副檔名為IPthon) (4)常用套件: Numpy: Python做多維陣列(矩陣)運算時的必備套件,比起Python內建的list,Numpy的array有極快的運算速度優勢 Pandas:有了Pandas可以讓Python很容易做到幾乎所有Excel的功能了,像是樞紐分析表、小記、欄位加總、篩選 Matplotlib:基本的視覺化工具,可以畫長條圖、折線圖等等… Seaborn:另一個知名的視覺化工具,畫起來比matplotlib好看 SciKit-Learn: Python 關於機器學習的model基本上都在這個套件,像是SVM, Random Forest… Notebook(Jupyter notebook): 一個輕量級web-base 寫Python的工具,在資料分析這個領域很熱門,雖然功能沒有比Pycharm, Spyder這些專業的IDE強大,但只要code小於500行,用Jupyter寫非常方便,Jupyter也開始慢慢支援一些Multi cursor的功能了,可以讓你一次改許多的變數名稱 (5)優點:省時:一鍵安裝完90%會用到的Python套件,剩下的再用pip install個別去安裝即可 (6)缺點:占空間:包含了一堆用不到的Python的套件(可安裝另一種miniconda) (7)下載網址:https://www.anaconda.com/ 選擇個人版:indivisual https://www.anaconda.com/products/individual →Download →Windows Python 3.7(會自動幫你安裝Python 3.7) 64-Bit Graphical Installer (466 MB) 32-Bit Graphical Installer (423 MB) (8)安裝過程,要勾選 不勾選:add the anaconda to the system PATH(但是2020年,ananconda不建議勾選這個,容易發生錯誤) 勾選:Register anaconda as system Python 3.7 (9)安裝結束 →在windows開始→anaconda有6個項目,最常用的有3個 (1)anaconda prompt:可以直接下cmd指令 (2)Spyter:編譯器(還不錯的spyder編譯器) (3)jupyter notebook(網頁版的python編輯器,副檔名為IPthon) |
||||
4.Anaconda prompt:cmd指令 |
4.使用anaconda prompt:直接下cmd指令 注意:windows 10 必須使用管理員來執行(點選anaconda prompt→滑鼠右鍵→以系統管理員身份進行) (1)列出目前已經安裝的anaconda的模組與版本: conda list (2)對某個模組更新安裝 conda update 模組 範例:conda update ipython (3)安裝某個模組 方法1:conda install 模組 範例:conda install numpy # 安裝 NumPy 1.15 以後、 1.16 以前 conda install 'numpy>=1.15,<1.16' 方法2:pip install 模組 範例:pip install numpy (4)解除安裝某個模組 方法1:conda uninstall 模組 範例:conda uninstall numpy 方法2:輸入 conda remove PACKAGE_NAME可以從目前的工作環境移除指定套件。 # 移除 NumPy conda remove numpy numpy-base 方法3:pip uninstall 模組 範例:pip uninstall numpy (5)在anaconda prompt執行python程式 方法1: 先到工作目錄:cd ch1 執行.py程式:python test1.py 方法2:python c:\chp1\test1.py (6)常用指令 conda --version 檢視 conda 版本 conda update PACKAGE_NAME更新指定套件 conda --help 檢視 conda 指令說明文件 conda list --ENVIRONMENT 檢視指定工作環境安裝的套件清單 conda install PACAKGE_NAME=MAJOR.MINOR.PATCH 在目前的工作環境安裝指定套件 conda remove PACKAGE_NAME 在目前的工作環境移除指定套件 conda create --name ENVIRONMENT python=MAIN.MINOR.PATCH 建立新的工作環境且安裝指定 Python 版本 conda activate ENVIRONMENT 切換至指定工作環境 conda deactivate 回到 base 工作環境 conda env export --name ENVIRONMENT --file ENVIRONMENT.yml 將指定工作環境之設定匯出為 .yml 檔藉此複製且重現工作環境 conda remove --name ENVIRONMENT --all 移除指定工作環境 使用 conda list | grep numpy 檢查 Python 套件清單中是否還有 NumPy 套件 輸入 conda search PACKAGE_NAME可以檢視指定套件在 conda 中可安裝的版本列表。 # 檢視 NumPy 在 conda 中可安裝的版本 conda search numpy=1.16.3 |
||||
5.用Anaconda prompt來建立虛擬環境 |
5.使用Anaconda prompt來建立虛擬環境 功能:可以建立多個Anaconda虛擬環境 例如:目前安裝後預設是python 3.x版本的環境,若要創建一個python 2.x的環境,就可以在Anaconda虛擬環境實現 (1)# 檢視電腦中可使用與目前所在的工作環境 conda env list (2)使用 conda create --name ENVIRONMENT python=MAIN.MINOR.PATCH 指令可以建立出乾淨、極簡且資源隔絕的工作環境。 指令:conda create -n 虛擬環境名稱 python=版本 anaconda # 建立一個名稱為 demo 的 Python 2 工作環境 conda create --name demo python=2 範例:建立py27env環境 conda create -n py27env python=2.7 anaconda (3)輸入 conda activate ENVIRONMENT 可以啟動指定工作環境、 方法1:conda activate ENVIRONMENT 方法2:activate ENVIRONMENT 範例:activate py27env 方法3:到windows→開始→點選Anaconda prompt(py27env) (4)關閉虛擬目錄,回到原本pytohn環境(base) 使用 conda deactivate 則是切換回預設的 base 工作環境。 方法1:conda deactivate 方法2:deactivate (5)# 檢視 demo 工作環境中的套件 conda list -n py27env (5)範例 A.建立py27env虛擬環境 conda create -n py27env python=2.7 anaconda B.切換到py27env虛擬環境 activate py27env C.檢視 demo 工作環境中的套件 conda list -n py27env D.# 檢視 Python 版本 python --version E.關閉虛擬目錄,回到原本pytohn環境(base) deactivate (5)複製一個與目前pyhon環境(或是py27env) 完全相同的工作環境 conda create -n 新虛擬環境名稱 --clone root 範例:conda create -n py27env2 --clone root # 檢查明確所有虛擬環境名稱 conda info -e (6)移除某個虛擬環境 conda remove -n 虛擬環境名稱 --all 範例:conda remove -n py27env --all (7)常用指令整理 安裝:conda install 更新:conda update 移除:conda remove 在工作環境管理透過 創建:conda create 啟動:conda activate 停止:conda deactivate 匯出設定檔:conda env export 移除:conda remove |
||||
6.使用Spyter編譯器 |
6.使用Spyter:編譯器 (1)新增一個py檔案 File→ New file print("你好,歡迎光臨") print(1+1) Run➤ (2)開啟已經存在的檔案 方法1:File→ Open 方法2:拖曵檔案總管的py檔案到Spyder (3)在Spyter使用簡易智慧輸入 方法:按『tab』 範例: 先輸入p 然後按『tab』 出現list清單,都是p開始的指令 (4)程式除錯 方法1:若是這一行有指令寫錯,就會在最左邊出現三角形▲警告icon 方法2:在這個一行最左邊double click,就會出現中斷點(或是這一行按F12) |
||||
7.jupyter notebook網頁版的python編輯器 |
7.jupyter notebook (1)功能:是網頁版的python編輯器,副檔名為IPthon 會開啟瀏覽器:http://localhost:8888/tree 對應的硬碟目錄 = C:\Users\電腦名稱 (例如: C:\Users\user) (2)練習線上編輯一個簡單python程式 A.右方→New→Python3 在cell裡面輸入In[1] a = ("apple","grape","banana") print(a[2]) B.Run C.修改檔案名稱→Untitled→exp1-3 D.查詢雲端檔案放置位置:C:\Users\電腦名稱\exp1-3.ipynb (3)二種不同的Run方式 A.Run:會新增一個new cell B.Ctrl+Enter:會停留在原本的cell (4)在jupyter notebook使用簡易智慧輸入 方法:按『tab』 範例: 先輸入p 然後按『tab』 出現list清單,都是p開始的指令 (5)在jupyter notebook編輯的檔案無法讓python IDE編譯 jupyter notebook編輯的檔案是.ipynb 與python的.py不同 改善方法:只能把程式碼複製貼上,在兩個平台交流 |
||||
8.其它線上雲端可編譯的python平台 |
8.其它線上雲端可編譯的python平台 網站:http://rep.it/languages/python3 |
||||
範例11-1:看2組數據的關聯性(用定量的關聯係數corrcoef來表示) #題目:已經知道這段期間,美元與黃金的關係數據,請預測美元與黃金數據之間的關聯性大不大? #重點:看2組數據的關聯性,最簡單的方法: #方法:使用numpy模組的一個函數:np.corrcoef(x,y) #功能:可以看出定量的關聯: 例如1:若兩筆數據的關聯係數: c1 =0 ➜ 表示2者無關聯, 例如1:若兩筆數據的關聯係數: c1 =1 ➜ 表示2者關聯性大 # 指令: import numpy as np c1 = np.corrcoef(x, y) (用定量的關聯函數corrcoef()來計算定量關係) |
|||||
上課練習範例 | 結果圖 | 資料庫 | 程式碼 | ||
|
範例11-2.用numpy建立線性迴歸模型,建立2組數據的數學model(當美元=29.75,預測黃金價位) # 題目:已經知道這段期間,美元與黃金的關係數據,請進行預測:當美元=29.75,黃金的價位=? #重點1:建立2組數據的線性迴歸數學模型,有2種方法 (1)用numpy模組:最簡單 (2)用sci-kit learn模組 #重點3:用numpy建立線性迴歸數學模型(3步驟) import numpy as np #步驟1:先計算(y=ax+b)多項式的參數(a,b)➜ coef 指令:coef = np.polyfit(x, y, 1) #步驟2:再建立數學模型➜ model = np.poly1d(coef) #步驟3:進行預測(當美元=29.75,請問黃金的價位=?) ➜ model(29.75) |
|||||
上課練習範例 | 結果圖 | 資料庫 | 程式碼 | ||
|
範例11-3.線性迴歸模型的視覺化(當美元=29.75,預測黃金價位) #題目:已經知道這段期間,美元與黃金的關係數據,請進行預測:當美元=29.75,黃金的價位=? #重點1:建立2組數據的非線性迴歸數學模型,有2種方法 (1)用numpy模組:最簡單 (2)用sylearn模組(sci-kit learn) #重點3:用numpy建立線性迴歸數學模型(3步驟) import numpy as np #步驟1:先計算(y=ax+b)多項式的參數(a,b)➜ coef 指令:coef = np.polyfit(x, y, 1) #步驟2:再建立數學模型➜ model = np.poly1d(coef) #步驟3:進行預測(當美元=29.75,請問黃金的價位=?) ➜ model(29.75) |
|||||
上課練習範例 | 結果圖 | 資料庫 | 程式碼 | ||
|
範例11-4.線性迴歸模型的預測與視覺化(當氣溫=26度,預測營業額) #題目:捷運站旁的一家飲料店,有每日氣溫與營業額(千元)的數據,請做預測,當氣溫=26,30度的營業額為多少? #重點1:建立2組數據的非線性迴歸數學模型,有2種方法 (1)用numpy模組:最簡單 (2)用sylearn模組(sci-kit learn) #重點3:用numpy建立線性迴歸數學模型(3步驟) import numpy as np #步驟1:先計算(y=ax+b)多項式的參數(a,b)➜ coef 指令:coef = np.polyfit(x, y, 1) #步驟2:再建立數學模型➜ model = np.poly1d(coef) #步驟3:進行預測num ➜ model(num) |
|||||
上課練習範例 | 結果圖 | 結果圖 | 資料庫 | 程式碼 | |
|
範例11-5.線性迴歸模型的預測與視覺化(當身高=150,預測體重) #題目:某高中男同學的身高與體重數據,請做預測,當身高=150,160,170,的體重為多少? #重點1:建立2組數據的非線性迴歸數學模型,有2種方法 (1)用numpy模組:最簡單 (2)用sylearn模組(sci-kit learn) #重點3:用numpy建立線性迴歸數學模型(3步驟) import numpy as np #步驟1:先計算(y=ax+b)多項式的參數(a,b)➜ coef 指令:coef = np.polyfit(x, y, 1) #步驟2:再建立數學模型➜ model = np.poly1d(coef) #步驟3:進行預測num ➜ model(num) |
|||||
上課練習範例 | 結果圖 | 結果圖 | 資料庫 | 程式碼 | |
|
範例12-1.numpy建立非線性迴歸模型來預測(當美元=29.75,預測黃金價位) # 題目:請做預測,當美元=29.75,黃金的價位=? #重點1:觀念:最簡單的非線性迴歸模型 = 多項式模型 #舉例:3次方多項式 y = ax^3 + bx^2 + cx + d #特色:越高次方的多項式,越可以逼近任意的曲線 #重點2:建立2組數據的非線性迴歸數學模型,有2種方法 (1)用numpy模組:最簡單 (2)用sylearn模組(sci-kit learn) #重點3:用numpy建立非線性迴歸數學模型(3步驟) import numpy as np #步驟1:先計算n次方多項式的參數(a,b,c....)=coef 指令:coef = np.polyfit(x, y, n) #步驟2:再建立數學模型➜ model = np.poly1d(coef) #步驟3:進行預測(當美元=29.75,請問黃金的價位=?) ➜ model(29.75) |
|||||
上課練習範例 | 結果圖 | 資料庫 | 程式碼 | ||
|
範例13-1:線性迴歸模型的預測與視覺化(當氣溫=26度,預測營業額) # 題目:捷運站旁的一家飲料店,有每日氣溫與營業額(千元)的數據,請做預測,當氣溫=26,30度的營業額為多少? #重點1:建立2組數據的非線性迴歸數學模型,有2種方法 (1)用numpy模組:最簡單 (2)用sylearn模組(sci-kit learn) #重點3:建立線性迴歸的模型sklearn model方法:(3步驟) #步驟1:先建立數學模型 #第一種方法: #import sklearn.linear_model as lm #model = lm.LinearRegression() #或第二種方法: #from sklearn.linear_model import LinearRegression #model = LinearRegression() #步驟2:讓模型model學習歷史數據 # 學習指令:model.fit(dataframeX, dataframeY) # 範例:model.fit(df['溫度'].to_frame(), df['營業額'].to_frame()) # 資料結構:df['溫度'] ➜ series # 資料結構:df['溫度'].to_frame() ➜ dataframe #步驟3:進行預測(當溫度=26,30度的營業額為多少?) # 預測指令:model.predict(dataframe) # 氣溫=26的dataframe =》 [[26]] |
|||||
上課練習範例 | 結果圖 | 資料庫 | 程式碼 | ||
|
範例13-2:線性迴歸模型的預測與視覺化(當身高=150,預測體重) # 題目:某高中男同學的身高與體重數據,請做預測,當身高=150,160,170,的體重為多少? #重點1:建立2組數據的非線性迴歸數學模型,有2種方法 #(1)用numpy模組:最簡單 #(2)用sylearn模組(sci-kit learn) #重點3:建立線性迴歸的模型sklearn model方法:(3步驟) #步驟1:先建立數學模型 #import sklearn.linear_model as lm #model = lm.LinearRegression() #步驟2:讓模型model學習歷史數據 # 學習指令:model.fit(dataframeX, dataframeY) # 範例:model.fit(df['溫度'].to_frame(), df['營業額'].to_frame()) # 資料結構:df['溫度'] ➜ series # 資料結構:df['溫度'].to_frame() ➜ dataframe #步驟3:進行預測(當溫度=26,30度的營業額為多少?) # 預測指令:model.predict(dataframe) # 氣溫=26的dataframe =》 [[26]] |
|||||
上課練習範例 | 結果圖 | 資料庫 | 程式碼 | ||
|
範例13-3:線性迴歸模型的預測與視覺化(當美元=29.75,預測黃金價位) #題目:請做預測,當美元=29.75,黃金的價位=? #重點1:建立2組數據的非線性迴歸數學模型,有2種方法 #(1)用numpy模組:最簡單 #(2)用sylearn模組(sci-kit learn) #重點3:建立線性迴歸的模型sklearn model方法:(3步驟) #步驟1:先建立數學模型 #import sklearn.linear_model as lm #model = lm.LinearRegression() #步驟2:讓模型model學習歷史數據 # 學習指令:model.fit(dataframeX, dataframeY) # 範例:model.fit(df['美元'].to_frame(), df['黃金'].to_frame()) # 資料結構:df['美元'] ➜ series # 資料結構:df['美元'].to_frame() ➜ dataframe #步驟3:進行預測(當美元=29.75,黃金的價位=?) # 預測指令:model.predict(dataframe) # 氣溫=26的dataframe =》 [[29.75]] |
|||||
上課練習範例 | 結果圖 | 資料庫 | 程式碼 | ||
|
chp14.sklearn建立非線性迴歸模型來預測(複雜) 範例14-1.sklearn建立非線性迴歸模型來預測(當美元=29.75,預測黃金價位) # 題目:請做預測,當美元=29.75,黃金的價位=? #重點1:建立2組數據的非線性迴歸數學模型,有2種方法 #(1)用numpy模組:最簡單 #(2)用sylearn模組(sci-kit learn) #重點3:建立非線性迴歸的模型sklearn model方法:(5步驟) #步驟1:先建立數學模型(多項式) import sklearn.preprocessing as prep # 2次方多項式model model = prep.PolynomialFeatures(degree=2) #步驟2:將變數x(df['美元'])➜轉成多項式的各種特徵變數 ➜ x_poly = [x1, x2, x1x2, x1^2, x2^2] 說明示意圖: # x = df['美元'] ➜ 轉換成 x_poly特徵變數 x_poly = model.fit_transform(df['美元'].to_frame()) #步驟3:再建立『線性』數學模型model2 ➜ y = f(x_poly) import sklearn.linear_model as lm model2 = lm.LinearRegression() #步驟4:讓模型model學習歷史數據(x_poly, df['黃金']) model2.fit(x_poly, df['黃金'].to_frame()) #步驟5:進行預測(當美元=29.75,黃金的價位=?) print('當美元=29.75,黃金的價位 = ', model2.predict(model.fit_transform([[29.75]]))) |
|||||
上課練習範例 | 結果圖 | 資料庫 | 程式碼 | ||
|
chp15.sklearn建立多元線性迴歸模型y=f(x1,x2,x3...)來預測(複雜) 範例15-1:由腰圍身高預測體重,建立多元線性迴歸模型y=f(x1,x2,x3...)來預測 # 題目:請做預測,當腰圍=66,身高=164,預測學生的體重=? #重點1:建立多元線性迴歸模型y=f(x1,x2,x3...),sklearn:(3步驟) #步驟1:先建立數學模型 #import sklearn.linear_model as lm #model = lm.LinearRegression() #步驟2:讓模型model學習歷史數據 # 學習指令:model.fit(dataframeX, dataframeY) # 注意重點:若是多個變數(x1,x2...),則要把多個變數(x1,x2...)合併成1個變數dataframeX(a1) # 範例:model.fit(a1, df['體重'].to_frame()) # 合併的語法:pd.concat([df['腰圍'],df['身高']], axis=1) # 資料結構:df['腰圍'] ➜ series # 資料結構:df['腰圍'].to_frame() ➜ dataframe #步驟3:進行預測(當腰圍=66,身高=164,預測學生的體重) # 預測指令:model.predict(dataframe) # 腰圍=66,身高=164的dataframe =》 [[66, 164]] # 範例:print('當腰圍=66,身高=164,預測學生的體重=', model.predict([[66, 164]])) |
|||||
上課練習範例 | 結果圖 | 資料庫 | 程式碼 | ||
|