搜尋感興趣的網誌

所有文章連結

2022年2月15日 星期二

Data Analytic Cacao – 語法解析

上篇是Cacao的分析報告,本篇就像Data Analytic Hotel Bookings 一樣進行流程分享與遇到的疑難解決方案,希望有與小雷遇到一樣問題的朋友們可以當作參考

 

有需要返回觀看Data Analytic Cacao的朋友們可以返回文章、進入Kaggle或是Github

 

Data Analytic Cacao文章 >> 請點選這裡瀏覽

小雷的Kaggle >> 請點這裡進入

小雷的Github >> 請點這裡進入

 

實作分析的研究流程(這是小雷個人的習慣流程,當然也會隨著經驗的變動會做最佳化的調整,各位朋友可以依照自己的習慣進行) :

1.      了解Data Set中的Col與其中的意義,可以定義好所需要的欄位作為分析,也順便思考再分析當中所需要的欄位是否數據有不足的情況,在這個CacaoData Set中,其實已經挺乾淨的,但是在Bean_type欄位存在著888NULL值,所有的Row1795行,有888NULL已經算幾乎50%了,是否不足以用來作為分析材料?有需要填補近似值嗎?還是乾脆放棄這個欄位?另外Col中還有個欄位是Bean_origin(原豆產地),是否需要將產地的特性作為補強數據呢(氣候、經濟、勞動力等..)?若不使用,是不是會有偏見的問題產生呢?

2.      所需要的流程有幾項,這些流程是否可以合併(像是Cacao的分析報告中小雷試著將數據彙總分析、可視化併為一個流程,想嘗試這樣的流程是否會比較能掌握數據間的關係與報告的流暢性)?

3.      主要的問題與需要解決的目標,這個畢竟是自己拿數據及做研究練習,並不是有特定目的存在,所以需要自己思考可能的問題與自己想掌握的目標,Cacao的分析中,小雷以平價作為基準考量,以消費者喜好為主,所以產地氣候這些進一步的深入問題,就沒有特別添加其他Data Set一併處理。

 

關於Cacao分析報告中使用的的語法例子與使用時機 :

其實使用時機這幾個字,並不是在編程與分析課程學的,而是以前上數學課,老師會將公式與使用時機(可以帶入的特徵)告訴我們,小雷個人覺得很好用,只要特徵符合使用時機,可以快速帶入並解決問題,所以在編程的語法上,我自己是用這個方式學習,用習慣了就會發現省了不少時間。

 

read.csv() : 讀取csv檔案的語法,有兩種讀取方式,另一種是read_csv.csvR內建的語法,好處是會自動辨識欄位屬性,read_csv讀取時必須將欄位屬性一併制定,否則會有錯誤提示訊息,較懶的做法就是直接使用.csv

基礎語法 : read.csv(“data”)

使用時機 : 要讀取csv檔案時

例子 : read.csv(“cacao.csv”)

 

基礎語法 : read_csv(“data”)

使用時機 : 讀取csv檔案時要可以直接變更屬性與名稱

可用參數 : col_types = cols(col_name = col_character())col_names = c(“name”, “name”..)

可變屬性 : 列出三個常用的,col_chartacter()col_double()col_integer()

例子 : read_csv(“cacao.csv”, col_names(“maker”, “specific_bean”, …), col_types(maker-if know = col_character(), …)

 

-          encoding = UTF-8,這不是甚麼特殊語法,只是把編碼設定為utf-8以免讀取出來會有亂碼,在這份CacaoData Set中,有看到不是英文的字母,不知道是法文還是甚麼的,所以自然而言就把這段加上去了,在Python也是同樣的語法。

例子 : read.csv(“cacao.csv”, encoding = “utf-8”)

 

-          as欄位屬性變換、levelsNULL值變換Hotel Booking的語法解析有,就不加贅述了,有需要的朋友可以點連結觀看文章 >> Hotel Bookings連結

 

-          group_by() : dplyr包內的函式,將所選的欄位進行分組,搭配summarisepipes可以分類後進行統計計算,在分析階段時可以很輕鬆的觀察所需要的欄位關係,這個與SQL中與法一樣。

基礎語法 : group_by(data, col_name, …)

使用時機 : 彙總數據進行分析觀察時

例子 : x <- data %>% group_by(rate, bean_type)

 

-          summarise() : 同樣是dplyr包內的函式,要用前需要先library(dplyr),用來統計選定欄位的值

基礎語法 : summarise(data, col_name = 計算方式, …)

可用函式 : 進行計算時列出幾個常用的函式,像平均值mean(),最大值max(),最小值min()

使用時機 : 計算欄位相關值使用

例子 : summarise(data, mean_num = mean(num), max_num = max(num), min_num = min(num))

 

-          filter() : dplyr內的函式,簡單說就是數據過濾,過濾成想要的,或是把不要的過濾掉,除了大於小於之外,也可以使用&|!等邏輯值。

基礎語法 : filter(col_name, …)

使用時機 : 過濾出想要的,或是不要的值

例子 : filter(bean_type != “NULL”) >> 過濾掉欄位裡有NULL的值

 

-          arrange() : 變更排序的方式,讓檢視數據時更清楚,預設為遞增,若要遞減需要加上desc()函式

基礎語法 : arrange()

使用時機 : 數據很亂需要重新排列時

例子 : arrange(desc(rate))

 

-          stat = “identity”: 會想放上這個特殊參數是因為geom_bar()一般來說只能設定x軸,y軸預設會是自動計算,所以在圖形上y軸會顯示count,但是需要x,y軸相呼應時,就需要這段參數,讓y軸的設定變更為自定義,就可以按照需求進行y軸的設定了。

使用時機 : 需要設定y軸作為x軸呼應時

例子 : geom_bar(mapping = aes(x = x, y = y), stat = “identity”)

 

以上就是在Cacao 的分析上,小雷個人覺得有解決所遭遇的問題,若是有朋友遇到一樣的問題,希望可以有些許幫助!

沒有留言:

張貼留言

其他文章

看看精選文章

納希克房價分析 | Nashik Apartment Price Analyze – 語法解析(上)

  這次 Nashik 的房價分析有上傳至 Kaggle ,有興趣的朋友可以前往閱覽, RMarkdown PDF 報告存放在 Google 雲端,程式碼則是存放於 Github ,照慣例會分享好用的函式語法,雖說基本的 Packages 與語法可能很多人都會完整的閱覽,但是實際...