搜尋感興趣的網誌

所有文章連結

顯示具有 data analytic 標籤的文章。 顯示所有文章
顯示具有 data analytic 標籤的文章。 顯示所有文章

2022年4月1日 星期五

所有文章連接

 


Hi I’m Rex

 

在這個小小的地方,有著小雷學習數據分析、人工智慧、解題網站與編程的筆記,語言包含R、Python,也有列出Git、Github版本控制的資訊,寫這個部落格筆記原始的想法是因為用來寫筆記的軟體內容太多了,沒有甚麼時間去整理的更有條理,寫些文章做個備份,順便自我複習,小雷本身並不是資訊科出身的,所以寫的方式偏向一般大眾會看得懂的方式,也讓自己學習時更好理解,若是內容有誤,也請不吝指正,各個項目的連結逐一列出,感興趣的朋友請連結觀看!

 

數據分析的介紹文章 >> 請點我

R語言的介紹文章 >> 請點我

HackerRank解題文章 >> 請點我

Git、Github相關 >> 請點我

機器學習相關 >> 請點我

 

 

不定時會將整理好的筆記寫出來,慢慢增加文章的量體,希望也可以幫助到正在學習程式語言、數據分析的朋友

2022年3月31日 星期四

Data Analyze by R | R語言數據分析

 



從上完Google Data Analytic數據師課程到現在大約是兩個多月,從重新學習新的編程語言R,到慢慢摸索編程寫出分析報告,不得不說數據分析是很有趣的事情,數據會說故事,會告訴我發生的事情,但小雷並不一定聽的懂它說甚麼,來亂的,一份基礎的分析報告其實就很花時間,從搞清楚問題 >> 確定好目標 >> 了解有那些數據 >> 載入數據 >> 檢視 >> 清理&調整 >> 檢視 >> 聚合彙整 >> 分析 >> 繪製圖表 >> 產出報告,過程很繁雜,大概有80%的時間都在清理的程序。

 

這樣的過程與分析,確實對於很多企業來說是需要的,過往在營運或是行銷時,大多數是經驗 凌駕 數字,除非很大的企業,否則大概都是這樣的模式去進行,畢竟自我確定的經驗,安全感大於數字給予的提示,洞察一旦錯誤,可能損失的會更多,我覺得也是止步不前的問題

 

現在越來越多新的技術、分析的方法,也越來越多企業了解到數據的本質與重要性無論營運、行銷、銷售、管理等等,只要有好的分析團隊,搭配正確的洞察,組織起強大的數據驅動決策方向,對於發展的速度能起到一定程度的重要性。

 

小雷有產出的報告目前不多,隨著使用的函數增加,報告的內容會越趨細緻,不敢說能力多好,只知道能力是可以逐步培養與進步,每一次的產出都是一次的進步。

 

關於Google Data Analyze課程資訊 : 

自我進修課程分享Coursera – Google Data Analytics數據分析師課程

 >> 請點我


各個分析報告的連結,不定期更新,時間以新 – 舊順序 : 

共享單車Cyclistic案例分析 | Data Analysis Cyclistic by R >> 請點我


Data Analytic Cacao – 案例分析報告 >> 請點我


Hotel Bookings Analytic - 案例分析報告 >> 請點我


Course Study - Bellabeat In R >> 請點我










2022年3月21日 星期一

共享單車Cyclistic案例分析 | Data Analysis Cyclistic by R – 語法解析(下)

 


最後這篇放的是ggplot2中的函數,幫助繪圖時顯示出更好的圖示,參數的部分不少,本篇舉出快速使用的幾個參數供參考,細部的參數待彙整完成整篇的在做分享嘍。

 

Data Analysis Cyclistic文章 >> 請點這裡進入

語法解析(上) >> 請點這裡進入

語法解析(中) >> 請點這裡進入

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

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

觀看完整報告,請至雲端下載PDF : 點我連結

---------------------------------------------做個分隔線------------------------------------------------

geom_col() : 這是geom_bar()長條圖的另一個版本,可以加入x、y軸的參數,若是geom_bar的部分,就必須在末端另外加入stat = “identity參數設定才能添加y軸,實際用起來個人覺得比geom_bar()好用。

所屬Package : ggplot2

基礎語法 : geom_col()

可用參數 : position = “”(設定長條圖的顯示方式,dodge >> 分開顯示,stack >> 堆疊顯示)

使用時機 : 需要設定x、y軸參數時

例子 :

riders_weeks %>%
    ggplot(mapping = aes(
        x = week,
        y = total_riders,
        fill = member_casual
    )) +
    geom_col(position = "dodge")


riders_weeks %>%
    ggplot(mapping = aes(
        x = week,
        y = total_riders,
        fill = member_casual
    )) +
    geom_col(position = "stack")

 

scale_y_continuous() : 這個函數與x參數很多,小雷目前只有使用幾個參數作為圖示的設定值,除了可以修改x、y軸名稱之外,刻度內也可以加入計算做調整,是很方便的語法,。

所屬Package : ggplot2

基礎語法 : scale_y_continuous(name = “”, breaks = c())

可用參數 : breaks = c(開始, 結束, 間隔)

使用時機 : 可以一次性調整y軸的顯示

例子 :

riders_weeks %>%
    ggplot(mapping = aes(
        x = week,
        y = total_riders,
        fill = member_casual
    )) +
    geom_col(position = "dodge") +
    scale_y_continuous(
        breaks = c(seq(0, max(riders_weeks$total_riders), 50000)),
        name = "Total Riders"

scale_x_continuous() : y軸的另一個版本,用法與y軸的部分基本上差不多,不過x軸的刻度通常都不太改,所以breaks會比較少用就是了。

所屬Package : ggplot2

基礎語法 : scale_x_continuous(name = “”, breaks = c())

使用時機 : 可以一次性調整x軸的顯示


scale_fill_manual() : 圖示顯示的顏色系統預設的看膩了嗎?這個函數可以自定義想要的顏色,讓顯示的圖表更吸睛!顏色的部分可以搜尋ggplot2的顏色名稱,填入就可以變更顏色了

所屬Package : ggplot2

基礎語法 : scale_fill_manual(values = c(“ ”))

使用時機 : 變更圖示的顏色

例子 :

riders_weeks %>%
    ggplot(mapping = aes(
        x = week,
        y = total_riders,
        fill = member_casual
    )) +
    geom_col(position = "dodge") +
    scale_fill_manual(values = c("violet", "yellow"))

riders_weeks %>%
    ggplot(mapping = aes(
        x = week,
        y = total_riders,
        fill = member_casual
    )) +
    geom_col(position = "dodge") +
    scale_fill_manual(values = c("chocolate1", "gray0"))

 

pie() : 有時在繪製比例的圖形時需要用到圓餅圖,這個函數可以很輕易的畫出圖形,並且一併設定好顏色、名稱、標題等資訊,可以搭配legend()作為圖示的說明。

所屬Package : graphics

基礎語法 : pie(x, labels = , col = c(), main = “ ”)

可用參數 : labels = 取哪個欄位的參數,col = 顏色設定,main = 標語內容

使用時機 : 需要繪製圓餅圖時使用

例子 :

pie_percent <- pie(user_sum$total_riders,
    labels = per_rider$x,
    col = c("dodgerblue2", "green2"),
    main = "年度會員與休閒會員比例 | Annual membership to the casual ratio"
)

 

legend() : 可以在繪圖上另外做說明的圖進行重疊,想要加入其他額外資訊時顯得方便許多。

所屬Package : graphics

基礎語法 : legend(loc, legend = c(), cex = , fill = c())

可用參數 : loc = 圖示的位置,legend = 顯示的文字,cex  = 圖示大小,fill = 填充顏色

使用時機 : 要在已經做好的圖示上添加說明

例子 :

legend("top", legend = c("Casual", "Member"), cex = 1, fill = c("hotpink4", "greenyellow"))

legend("bottomleft", legend = c("Casual", "Member"), cex = 2, fill = c("orangered", "palevioletred4"))

 

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



2022年3月20日 星期日

共享單車Cyclistic案例分析 | Data Analysis Cyclistic by R – 語法解析(中)

 


這篇繼續分享分析數據中使用的函數,這些函數真的不是一天兩天能夠學的完,但是掌握一些好用的函數是可以事半功倍的!

 

Data Analysis Cyclistic文章 >> 請點這裡進入

語法解析(上) >> 請點這裡進入

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

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

觀看完整報告,請至雲端下載PDF : 點我連結

---------------------------------------------做個分隔線------------------------------------------------

 

ordered() : 透過這個函數可以將數值轉化為因子並進行等級的分類後排序,對於有限數值可以很輕易的設定成自己想要的順序,諸如日期、小時、年分等,屬於factor的操作函數之一。

所屬Package : base

基礎語法 : ordered(x, levels = c())

使用時機 : 將日期等數值進行等級的排序,由左至右,由小到大。

例子 :

combine_datas_clearn$week <- ordered(combine_datas_clearn$week, levels = c("Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Saturday", "Sunday" ))
 
Monday    Tuesday   Wednesday Thursday  Friday    Saturday  Sunday     
Levels: Friday < Thursday < Wednesday < Tuesday < Monday < Saturday < Sunday

 

aggregate() : 將數據聚合成一個子集進行觀察,並且統計對應的值,在進行數據觀察時好用,很輕易的將數據分類並檢視,使用” ~ ”進行主要子集欄位,使用” + “添加欄位進入觀察,需要注意的是,末端一定要有聚合的方式,也就是甚麼樣的統計方法。

所屬Package : stats

基礎語法 : aggregate(x, 要聚合的項目, FUN = ,..)

FUN : max、min、sum….

使用時機 : 需要將數據進行子集的比對時。

例子 :

aggregate(data = combine_datas_clearn, ride_length_minutes ~ member_casual + week, FUN = mean)
 
   member_casual      week ride_length_minutes
1         casual    Friday            62.89725
2         member    Friday            13.74218
3         casual  Thursday            61.38308
4         member  Thursday            13.73213
5         casual Wednesday            61.97770
6         member Wednesday            13.73333
7         casual   Tuesday            59.93933
8         member   Tuesday            13.76905
9         casual    Monday            56.20478
10        member    Monday            14.04288
11        casual  Saturday            55.53190
12        member  Saturday            16.14890
13        casual    Sunday            59.69009
14        member    Sunday            15.33291
 

 

n = () : 算是一個簡易型的sum(),但是有使用上的函數限制,一定要搭配著使用,會自動幫你計算當前分類的項目大小總數。

所屬Package : summarise、mutate、filter中特殊用法。

基礎語法 : summarise(n = ())

使用時機 : 計算分類的項目總數

例子 :

user_sum <- combine_datas_clearn %>%
    group_by(member_casual) %>%
    summarise(total_riders = n())
 
  member_casual total_riders
  <chr>                <int>
1 casual              902182
2 member             2973860

 

paste() : 可以將character連接在一起的函數,或是將不是字符的部分轉換後進行連接,也可以設置分隔的方式。

所屬Package : base

基礎語法 : paste(需要連接的部分, sep = “”)

使用時機 : 需要將字符連接

例子 :

per_rider <- paste(
    round(user_sum$total_riders / sum(user_sum$total_riders) * 100, digits = 2), "%", sep = " "
)
"23.28 %" "76.72 %"

 

difftime() : 日期的計算在數據中算是很重要又頗麻煩的部分, 有時想知道時間間隔差了多少時,difftime()這個函數可以簡單的計算出來,需注意的是時間的計算需要先轉換為日期格式。

所屬Package : base

基礎語法 : difftime(time2 – time1)

使用時機 : 計算時間差時

例子 :

time_start <- as.POSIXct(c("2022-03-01 15:03:20"))
time_end <- as.POSIXct(c("2022-03-05 20:20:20"))
time_diff <- difftime(time_end, time_start)
 
r$> time_start
[1] "2022-03-01 15:03:20 CST"
r$> time_end
[1] "2022-03-05 20:20:20 CST"
r$> time_diff
Time difference of 4.220139 days

其他文章

看看精選文章

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

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