2018年1月30日 星期二

Python與R講座筆記

  本篇網誌為筆者參加PythonR相關講座時記錄的講座筆記資料,用以協助自己了解資料科學相關技術與職涯發展契機。

  終身學習總是必要的,尤其是當生活與工作處於重建期的時候,更應該自我充實,讓自己未來的生活與工作能變得更好;由於工作的緣故而接觸資料科學,了解資料科學是一門綜合統計、資訊與專業領域知識的學科,對於大學畢業於科技應用與人力資源發展學系,研究所畢業於企業管理學系碩士班的我而言,會進入資料科學領域,也只是為了以聰明、自動化的方法,處理一些瑣碎、無聊、無意義的工作任務,過去的學科背景並未讓我在學習資料技術上帶來任何優勢;有鑑於目前正在改造生活,經過長考之後,決心也對工作進行改造,讓現在的自己徹底進入生活與工作的重建期。

  PythonR是進入資料科學領域的基本程式技能,也是對初學者極為友善的程式語言,儘管如此,沒有知識、技能與人脈,從零開始,是段艱辛與漫長的旅途,在獲得專業職涯教練的建議,並深思《100歲的人生戰略》與《做自己的生命設計師》這兩本書帶來的啟示之後,才鼓起勇氣從頭打造符合自己人生觀與工作觀的實作技能,替未來的職涯發展奠定基礎。

Advice from Hank
l   1. Know What You Want to Do: What is career success to you and what you need to do now to make it happen?
2. Competence: Never stop learning, even after school, which will ensure you will make progress all the time.
3. Exposure: It's part of personal branding; you need to have people know you and then they may be able to trust you. Afterwards, you may have a new opportunity in the future.

輕鬆學習R語言-非工程師的學習地圖-郭耀仁
l   資料科學的範疇:
資料技術(Extract, Transfer, Load)、視覺化、機器學習、高效能運算
l   PythonR
1.
有沒有寫過程式 à 有的話可先學Python,無的話可先學R
2.
喜歡函數型或物件導向編程 à Python是物件導向,R是函數型
3.
以什麼應用為主 à
統計分析建議使用R
視覺化建議使用R,且ggplotR為基礎,此外Python因無內建向量級別運算,若要使用Python需要額外import許多模組
深度學習建議使用Python,且GoJulia等其它編程都需要call Python
網站建置後端資料科學系統建議使用Python,且JungleFlask等其它編程都需要call Python
l   R基礎:
變數類型、資料結構、流程控制、迴圈、自訂函數
l   R應用:
資料載入、Base Plotting Systemggplot2、文字函數與正規表達式、rvest套件、caret套件、作品集(非主要功能)

Python自動化與高效的工作術-Eugene Chang張佑成
l   講座投影片:
http://13.114.22.58/article/Syxeo8N4f#/
l   Python
1.
不同平台的支援度高
2.
熱門、社群龐大,因此相關的文件、資源較齊全
3.
擁有相當多現成好用的套件
4.
直譯式語言,不需編譯就能運行,能快速驗證自己寫的程式碼;與R相比,Python像瑞士刀,R像武士刀,R的統計分析能力極強,但在其它領域相當普通
à 推薦書籍中文版《Python自動化的樂趣-搞定重複瑣碎&單調無聊的工作》,英文版《Automate the Boring Stuff with Python》,網路版https://automatetheboringstuff.com/
l   學程式是「重要但不急迫」的事,得固定花時間長期學習,但,忌「中途退出」:
To-Do List

1. Trello: A To-Do List APP
2. Asana: A To-Do List APP
,特色為「看板法」
看板法的精隨:
1.
把工作流程分成不同的階段
2.
以最快速度從第一階段做到最後階段
3.
一個階段嚴格限制最多能處理的量
4.
用所有力量把卡住的環節解決
à 推薦書籍The Effective Engineer
l   無法從工作學到更多新的知識或技能,代表公司要求你接受較低的成長率,長期下來這對一個人的職涯發展是致命的:
1.
注意力重要性高於時間,時間重要性高於金錢
2.
注意力應集中在「學習成長」與「工具應用」
3.
維持高注意力水平的要點是「溫控」與「重建」:溫控指的是工作要匹配能力,不可太簡單太單調,也不可太複雜太困難;重建指的是自信缺乏,要良好的自我認知
à 推薦書籍中文版注意力專區》,英文版《Find Your Focus Zone
l   透過番茄工作法進入心流:
1.
番茄工作法(Pomodoro Technique)是將工作拆成每25分鐘專注進行
2.
進入心流,需要「清晰目標」、「即時反饋」、「工作難度與能力匹配」
à 推薦書籍Pomodoro Technique Illustrated
à 推薦書籍Flow: The Psychology of Optimal Experience
à 推薦書籍Stealing Fire: How Silicon Valley, the Navy SEALs, and Maverick Scientists Are Revolutionizing the Way We Live and Work
l   使用Python操作Gmail要注意的事:
Google
的兩步驟驗證機制:
https://myaccount.google.com/intro/security
Google
的通行碼,只會顯示一次,千萬別搞丟了:
https://support.google.com/accounts/answer/185833

商業分析師學R語言的六個理由-郭耀仁
l   下載R語言:
1. The Comprehensive R Archive Network

https://cran.r-project.org/
2. Download RStudio - Rstudio

https://www.rstudio.com/products/rstudio/download/
l   R語言的應用從TidyverseGapminder開始:
1.
安裝TidyverseGapminder
pkgs <- c("tidyverse", "gapminder")
install.packages(pkgs)
2.
載入TidyverseGapminder
library(tidyverse)
library(gapminder)
3.
常用的函數
filter()
觀測值選擇
select()
變數選擇
mutate()
新增變數
arrange()
排序
summarise()
聚合
group_by()
分組

從零到一:文法商背景的資料科學之路-郭耀仁
l   講座投影片:
https://bit.ly/2BqX0sx
l   階段一-顧問業實習生:
培養靈活佐證資訊的能力,可能考慮買Reuters等資料庫,可能考慮直接從報章雜誌擷取資訊,亦可能考慮直接面談相關人士以獲取資訊,做法非常彈性。
l   階段二-金融業儲備幹部:
商管科系畢業的新鮮人最常投遞的職缺主要有FMCG與金融業儲備幹部兩者,其中金融業又以外商銀行為首選,本土非官股銀行次之。
一般金融業儲備幹部分為投銀、法金RM(Relation Manager)、個金PM(Product Manager)等三大領域,講者是從個金領域開始接觸資料庫、SQL語法、資料科學並產生興趣,主動學習SQL語法,並以程式對每日例行性工作做排程。
l   階段三-SAS台灣分公司Pre-sales
Demo產品,也需寫程式,是一份有表現舞台,也有技術能量的工作,讓自己從Business Consultant的部分開始,逐步摸索到Technical Consultant的部分,從ScraperHTMLRuby on Rails,開始無止盡的學習。
此時發現資料科學比較重視RPythonSASMATLAB反而沒有如此被重視,因此調整學習方向,同時亦接觸CourseraGitHub,開始被他人看到自己的能力,為職涯重要轉捩點。
l   階段四-編程教學:
於波士頓與Data Camp接觸的時候產生編程教學念頭。
其後於上海加入韓國電商Coupang的任務型團隊,利用一半的時間學習,在團隊中擔任分析的角色,橋接統計與資料工程師。
現在於台北加入新創團隊,創立KYOSEI.AI
l   資料科學目前的生態:
矽谷工程師多使用Python,專業人數多,因此做為填補資料科學家職缺的主要來源;而統計學家多使用R,專業人數少,因此難以做為填補資料科學家職缺的主要來源,如此一來導致Python近來比R流行;至於未來,Julia有發展潛力,因其宣稱自己像Python一樣簡單,像R一樣為函式型,像C一樣快速,可能為未來的趨勢。
l   學習資料科學基礎:
建議學好重要的程式基礎,同時也要學好重要的框架應用,如此協調學習之下,既有的知識才能順利延展到不同的編程工具,畢竟一個程式語言能紅多久,沒人說得準。
初學者建議學習如講者開設的免費課程如R語言導論資料框整理技巧DataInPoint等,專業者可以考慮參加學院派課程如edXCoursera等。
自學時若遇到盲點,還是建議多加嘗試,若不行,等一段時間再回頭看,往往能自己找到解方,或發現自己陷入根本上錯誤的觀念;此外亦可訂閱技術專欄文章,以及進行原型實作,來逐一拆解問題。
l   尋找資料科學職缺:
講者面試新人時,會考程式實作,以及函數推導過程,而求職者必須了解學習程式技術,不會有準備好的一天,只要有一項條件符合,就請勇敢投遞Junior的職缺。

沒有留言:

張貼留言