← Career advice
Advice Columnist

天文台的理想與現實

GetLinks RecruitmentBy GetLinks Recruitment
天文台的理想與現實

香港天文台的預測經常令你失望?是你的心理作用,還是這台的預測真的有偏差?

我們會在有誤差的時候埋怨,但天文台也可以為自己辯解,聲稱其他日子其實也很準確,到最後雙方都好像不夠說服力。這一回,我決定利用 Web Scraping,配合 d3.js ,透過 Visualisation 和數據,讓大家都把誰是誰非一眼看通透!!!(如對程式沒有興趣,可直接拉到最後看結果)

十年不更新的格式

很多朋友初學 Web Scraping,多半都是到天文台抓取資料。而筆者則在十多年前已經開始嘗試抓取天文台的資料,為自己的桌面作一個小型「我的天文台」。

不過,每一位曾經抓取天文台資料的朋友,必然會發現,香港天文台的資料並不方便電腦處理。天文台在自己的網站 (https://rss.weather.gov.hk/rss_uc.html) 和政府的「資料一線通」網站 (https://data.gov.hk/) 都公開了讓程式讀取的資料位置,但你能夠拿到的東西,卻與「純文字版」沒太大分別。例子如下:

 

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="flwc.xsl" type="text/xsl" ?><rss version="2.0">
<channel>
<title>本港地區天氣預報</title>
<link>http://www.weather.gov.hk/wxinfo/currwx/flwc.htm</link>
<description>本港地區天氣預報</description>
<language>zh-tw</language>
<webMaster>[email protected]</webMaster>
<copyright>本檔案的內容,包括但不限於所有文本、平面圖像、圖畫、圖片、照片以及數據或其他資料的匯編,均受版權保障。香港特別行政區政府是本檔案內所有版權作品的擁有人。</copyright>
<image>
<url>http://rss.weather.gov.hk/img/logo_dblue.gif</url>
<title>本港地區天氣預報</title>
<link>http://www.weather.gov.hk/</link>
</image>
<item>
<guid isPermaLink="false">
      http://rss.weather.gov.hk/rss/LocalWeatherForecast/20190503000000</guid>
                        <pubDate>Thu, 02 May 2019 16:00:00 GMT</pubDate>
<title>香港天文台於2019年05月03日00時00分發出之天氣報告</title>
<category>F</category>
<author>香港天文台</author>
<link>http://www.weather.gov.hk/wxinfo/currwx/flwc.htm</link>
<description><![CDATA[
一股清勁至強風程度的偏東氣流昨日影響廣東沿岸。本港昨日多雲,早晚有幾陣驟雨,新界多處地區錄得超過5毫米雨量。預料該偏東氣流會在今明兩日繼續影響廣東沿岸。<br/><br/>
本港地區(五月三日,星期五)天氣預測:<br/>大致多雲,有幾陣驟雨。日間驟雨逐漸減少,短暫時間有陽光。氣溫介乎21至25度。吹和緩至清勁偏東風,離岸間中吹強風。<br/><br/>
展望: 星期六部分時間天色明朗,亦有一兩陣驟雨。隨後數天驟雨增多及有狂風雷暴。 ]]></description>
</item>
</channel>
</rss>

 

這個模樣的報告,根本和電台的講稿一模一樣!我們用程式沒辦法輕易找得出會下雨或是不會下雨,還要用 XML 格式,對於某些初學者來說,可能比在純文字版本找東西更多了一重處理 XML 的障礙,尤其近年來,XML 在一般大眾中的應用越來越少。

幸好,天文台使用的字眼十年如一天,我發現每逢天文台預測下雨的時候,總會以「有…雨」來形容,或者提及最挑動大家情緒的「狂風雷暴」。例如「稍後時間有幾陣雨」、「早晚有一兩陣驟雨」或「有狂風雷暴」。於是,我們便可以利用 Regular Expression,把這些字眼,以一兩行程式碼便抽取出來:

 

let match = result.forecast.match(/本港地區今日天氣預測:<br\/>(.*?)<br\/>/);
let heavyRain = match[1].match(/狂風雷暴/)
let rain = match[1].match(/有[^有雨]*?雨/)

 

我們把這四個月的資料整合,發現天文台只有四種形容方法:「有微雨」,「有驟雨」,「有雨」和「狂風雷暴」。

玩更多 Regular Expression: https://regexr.com/

歷史預測

既然有了方法拆解預測,那麼過往的預測又能怎樣拿到呢?

一般來說,如果沒有在過去的時間把資料儲存下來,那麼過去的資料就找不回來了。也是說,若然沒有其他來源之下,你希望找回過去每一天的天文台早上預報,是沒有可能的,你唯有從今天開始每一日妥善儲存到自己的電腦或雲端上。

那麼我們要不要等數個月才有結果?!不用怕,原來政府自 2017 年開始在 data.gov.hk 提供歷史數據,其實就是政府幫我們一直儲存著這些資訊,可以按每小時抓取過往四個月的天文台的天氣預報。

話說回來,政府的開放數據一直都是為人詬病,這次也不會令大家「失望」!在我們查找的過程中,發現兩個問題

  1. 縱然看起來數據是每小時記錄一次,但這個「每小時」的間距並不保證準確!正常時候是整點 (07:00, 08:00, 09:00…),偶然會失常早一分鐘遲一分鐘甚至誤差十數分鐘!(07:01, 07:47, 08:30…)
  2. 在找天文台數據時,2018-12-07 09:00 至 2019-01-01 08:00 的歷史記錄不見了,難道是那數十天負責的同事放假去了旅行⋯⋯?

 

所以,我們這次的調查只能覆蓋一至四月了。

實際的降雨量: 降雨量竟然有 API

來到這裡,我們手頭上已經拿到足夠的「天氣預報資料」,而實際降雨量方面,原本打算在「每小時降雨量」配合傳統的 HTML 拆解方法 (利用 cheerio 或 BeautifulSoup) 把每小時不同地區的降雨量抓下來。

不過,偶然發現原來天文台有一個「每日數據摘錄」,完整收集了自 1884 年起計的每一日的總雨量記錄。而且,這個頁面更是以 Client-side Rendering 的方式顯示,換句話說,即是資料來源是有 API 可攝取,大大方便了我們作分析工作。

只可惜預報方面缺少了部份歷史數據,更沒有以往年代的預報,否則我們更可以比較古今天文台的準繩度!(照道理應該是越來越準確吧!)

調查結果

萬事俱備,這次我們用 d3.js 把降雨和預測資料,用月曆的方式顯示出來。

從上表中可以看到,一月二月未踏入香港的雨季,實際上有雨的日子並不多。不過,苦口婆心的天文台,幾乎不間斷地提醒大家有微雨或驟雨,二月份更加只有七日沒有預報有雨。在「狂風雷暴」的警示下,只有 4 月 19 日達 75 毫米,其他日子的降雨量並不多,最極端的「狂風雷暴日」 4 月 26 日只有 0.9 毫米降雨量。似乎這結果和我們的想法都符合————天文台預測下雨但其實都不大機會下雨!

反過來看,雖然天文台經常令我們白白帶了傘外出,但在天文台預測沒雨時日子,幾乎全部都真的是沒雨和極微雨(只有 0.2 毫米)!即是說,如果你當天發現天文台的預測沒有提及任何「雨」的字眼,你可以十分放心把雨傘放在家中。

然而,只是數日子好像不夠科學。其實我們更可運用 Confusion Matrix 和統計數據,更清晰看得出以上的結論。

 

 

單單是看 Accuracy,我們能指出天文台的準繩度是 70%,但這樣的說法並不夠仔細。因為

Precision 的計算的方法是 (True Positive) / (True Positive + False Positive),即計算天文台預測有雨的日子中,有多少天是真的有下雨,而得出的數字是 0.57,換句話說即是 當天文台話有雨,只有 57% 機會真的下雨!

而 Recall 則是 (True Positive) / (True Positive + False Negative),即計算實際有雨的日子中,有多少天是天文台有成功預測到的,這次運算達到 94%,代表實際很少情況下,會在天文台沒有預測的時候下雨起來, 當天文台說沒雨,很少機會是真的下雨 。要留意的是,如果每天都說會下雨,其實 Recall 可以達到 100% 的。所以縱然有 94% Recall,配合 57% Precision 來分析,其實就是代表天文台總是偏向預測會下雨,讓大家「有備無患」。

後記:還有更多改良空間

今次為了簡化起見,把降雨量的資料依賴了「每日數據摘錄」,不過,假若降雨記錄只是發生在淩晨 00:00 至早上 08:00 這個時段,其餘時段沒有雨,而天文台又預計當天會下雨的話,其實也算是錯誤的預計!既然我們這次的調查,看得出天文台總是常常預測有雨(Precision 的比率十分低),假若剛才的情況(清晨有雨,日間沒雨)經常發生的話,這個統計是錯誤地推高了天文台的準確率呢!

還有,我們把 0.1 毫米或以上的雨量也當作是有下雨(幾乎是幾滴雨!),我相信帶了雨傘的大家一定不會認為天文台是預測準確。

所以,其實這次對天文台是手鬆了很多呢。

✦✦✦
不論是什麼年紀,追求自己所喜愛的事情而決定重頭開始並沒有錯。假如您希望投身於科技行業,讓GetLinks陪伴您走過路上的每一步吧!
GetLinks Recruitment

GetLinks Recruitment

GetLinks Recruitment 是一家全方位的人材招募公司。 自2015年以來,我們已經為亞洲超過20,000位人才找到了完美的匹配, 我們的 使命是為求職者和僱主提供一個高效 的 連接平台。 GetLinks Recruitment 迅速成為不少 公司值得信賴的合作夥伴,在全球多個地點設有辦事處,提供一個真正全球化的專業人士和企業網路。

Keep reading

Related career advice

【仁面秀心】財富守門人的溫度與格局
Advice Columnist

【仁面秀心】財富守門人的溫度與格局

有機會再次與財富管理資深專家楊婷婷頃吓食吓,在她百忙之中可以與我深度交流。在傾談中,隨心地探討了行業的本質與價值。婷婷的見解,讓我深刻體會到,卓越的事業並非單純的數字遊戲,而是以「仁面秀心」為核心的長遠修行。所謂「仁面」,是對客戶的同理與守護;「秀心」,則是內在的專業沉澱與不斷精進。 利他與守護:初心決定格局著名未來學家 Joel Barker 曾言:「願景加上行動便能改變世界。」與婷婷的頃談中,大家一致認同,事業的起點是對行業社會價值的深刻認同。譬如,保險業賺錢只是完成願景的附屬品,真正的核心在於以客戶為中心,協助他們規避人生風險。 這種「利他」精神,如保險是一件利他的事,能將優質的風險管理工具帶給客戶。婷婷察覺到許多家庭缺乏基本保障,卓越的從業員會將工作視為「守護」,幫助家庭在不確定中守住最長遠的保障;成為家庭和企業的財富守門人。當從業員以客戶福祉為出發點,銷售便不再是說服,而是價值的實現。 同理與陪伴:贏得長遠信任很多行業,如財富管理就是一門經營信任的事業。國際研究指出,深層聆聽與同理客戶的情緒智商,是頂尖代理人最重要的特質。婷婷也強調,願意把客戶利益放在首位,甚至推薦更適合但佣金較低產品的顧問,反而能長久留住客戶。 正如婷婷所言:「財富管理不只是產品解說,更是理解與陪伴。」信任的建立也需要專業的沉澱,她曾為素未謀面的客戶耐心重整繁複的保單,最終贏得了客戶的信任與轉介。長期服務與經營現有客戶所創造的效益,遠比不斷開發新客戶更為可觀。 專業與進取:持續學習的秀心現代高淨值客戶對財務規劃的要求日益提高,卓越的從業員必須具備全面的視野。專業並非一蹴而就,而是持續學習的成果。婷婷強調「空杯心態」,持守努力並持續學習。這種內在的「秀心」,讓她能以理性、客觀的態度,打破大眾對行業的印象。同時,婷婷在社交平台持續分享專業知識,不盲目求快,而是以沉穩的節奏,腳踏實地走好每一步,堅信「只要一直在路上,終會有收穫。」 今次與婷婷的傾談,讓我深刻認識到,專業的從業員不僅是財富的規劃者,更是人生的守護者。以「仁面」待人,以「秀心」行事,方能在這條道路上走得更穩、更遠。

你的職業,是資產,還是成本?
Advice Columnist

你的職業,是資產,還是成本?

提起「資產」,很多人會想到股票、基金或物業,但從事財富管理超過二十年,我認為,每個人最重要、回報最高的資產,其實是自己的職業。 在財富管理中,我們經常提醒客戶,真正能夠長期增值的,不只是金融資產,更重要的是持續創造價值的能力。放到職場上,道理同樣適用。每一天的工作,不只是換取薪酬,更是在累積自己的「職業資本」(Career Capital)——包括專業能力、經驗、信譽、人脈,以及解決問題的能力。 年資會增加,價值卻未必同步提升 AI 發展迅速,知識更新速度愈來愈快。有人工作十年,市場價值愈來愈高;亦有人工作十年,卻發現自己掌握的技能已逐漸被取代。兩者最大的分別,不在於年資,而在於有沒有持續投資自己。 管理年輕團隊時,我發現不少新一代重視薪酬、福利及晉升機會,這些固然重要,但我更鼓勵他們思考另一個問題:「這份工作,能否令三年後的自己,比今天更有價值?」 因為真正值得追求的,不只是下一次加薪,而是不斷提升自己的市場競爭力。 AI 可以提升效率,但不能建立信任 近年,AI 已能協助完成資料整理、分析,甚至撰寫報告。然而,在財富管理行業,我們最重視的,始終是理解客戶需要、建立信任,以及在充滿變數的市場中作出專業判斷。科技可以提升效率,但判斷力、責任感、溝通能力和同理心,仍然是無法被完全取代的核心價值。未來企業真正需要的,不只是懂得使用 AI 的員工,而是懂得善用 AI,同時具備獨立思考能力的人才。 投資自己,才是最好的長線回報 另外,財富管理講求長線投資,人才培育亦然。我經常鼓勵年輕同事,不要只做一個完成工作的執行者,而要努力成為能夠解決問題、創造價值的人。當你的能力來自持續學習、跨界思維及判斷力,而不是單一技能,你的職業資本便會像優質資產一樣,隨時間累積價值。同樣,面試年輕人時,建議不要只問他/她懂甚麼,而會問問他/她最近學了甚麼;因為知識會過時,但持續學習的能力,才是真正能夠複利增值的資產。 對企業而言,投資人才亦是最具回報的長線投資。完善的培訓、跨部門歷練、持續學習文化,不但提升員工能力,更能建立企業的長遠競爭力。 財富管理有一個重要概念,就是「複利」。我認為,職涯發展同樣存在複利效應。每天多學一點、多承擔一步、多累積一次經驗,看似微不足道,但經過數年,便會形成別人難以複製的競爭優勢。 你的職業,不應只是每月換取薪金的工具,而是一項值得長期經營的人生資產。懂得投資自己的人,無論市場如何變化,都能持續創造屬於自己的價值。

【職場 Hacker】資源有限,如何快速成長?
Advice Columnist

【職場 Hacker】資源有限,如何快速成長?

以下故事,純屬虛構,如有雷同,實屬巧合 一個沒有資源的創業者 Tom 是一位 32 歲的創業者。兩年前,他辭職創業,想做一個 B2B SaaS 產品。 但他面臨一個巨大的問題:他沒有資源。 他沒有資金——只有 50 萬積蓄,連一個像樣的辦公室都租不起。他沒有人脈——不認識投資人、不認識大企業的決策者、不認識行業裡的關鍵人物。他沒有團隊——只有他和一位技術合夥人,兩個人要做產品、做銷售、做客服。 那天晚上,Tom 坐在出租屋裡,看著銀行帳戶裡越來越少的餘額,感到深深的焦慮。他開始懷疑:沒有資源,我真的能成功嗎? 第二天,他約了一位成功創業者喝咖啡。這位創業者 5 年前也是白手起家,現在公司年營收超過 3 億。Tom 問他:「你當初是怎麼在沒有資源的情況下起步的?」 創業者笑了笑,說:「Tom,你知道嗎?資源不是成功的前提,槓桿才是。」 什麼是槓桿思維 創業者分享了他的經驗。他說,很多人以為創業需要很多資源——資金、人脈、團隊。但真正的創業者知道,你不需要擁有資源,你只需要撬動資源。 「這就是槓桿思維,」創業者說。「用最小的投入,撬動最大的產出。」 他舉了一個例子。他剛創業時,也沒有資金、沒有人脈、沒有團隊。但他用了三個槓桿,快速啟動了公司: 第一個槓桿:借用別人的信任。他沒有客戶,但他的前老闆有。於是他找前老闆談,說:「我想為你的客戶提供免費的產品試用,作為回報,你可以獲得 10% 的推薦佣金。」前老闆同意了,介紹了 5 個客戶給他。這 5 個客戶成為他的第一批種子用戶。 第二個槓桿:借用別人的專業。他不懂銷售,但他認識一位銷售高手。於是他找這位高手談,說:「我想請你做我們的銷售顧問,不需要全職,只需要每週花 2 小時指導我們。作為回報,你可以獲得 5% 的股權。」這位高手同意了,幫他建立了銷售體系。 第三個槓桿:借用別人的平台。他沒有品牌知名度,但行業媒體有。於是他主動聯繫幾家行業媒體,說:「我想分享我們在 B2B SaaS 領域的實踐經驗,可以寫一篇專業文章。」媒體同意了,發布了他的文章。這篇文章為他帶來了大量潛在客戶。 「你看,」創業者說,「我沒有資源,但我撬動了別人的資源。這就是槓桿思維。」 三種槓桿:人、平台、系統 創業者繼續分享。他說,槓桿思維有三種核心槓桿: 第一種槓桿:人的槓桿。找到那些擁有你需要的資源的人,然後用價值交換的方式,撬動他們的資源。比如,你需要客戶,就找那些有客戶的人;你需要專業知識,就找那些有專業知識的人;你需要資金,就找那些有資金的人。 創業者說,他創業的前兩年,沒有招聘任何全職員工,而是用「價值交換」的方式,撬動了 10 多位專業人士的資源——有人提供銷售指導、有人提供技術支持、有人提供客戶介紹。他用股權、佣金、或者互惠的方式,建立了一個「虛擬團隊」。 「記住!」創業者說,「你不需要擁有人才,你只需要撬動人才。」 第二種槓桿:平台的槓桿。找到那些已經有流量、有用戶、有影響力的平台,然後借用他們的平台來推廣你的產品或服務。比如,你可以在行業媒體發表文章、在社交媒體分享內容、在行業活動演講、在線上平台開課。 創業者說,他創業的第一年,沒有花一分錢做廣告,而是用「內容行銷」的方式,在各大行業媒體、社交媒體、線上平台發表文章和分享經驗。這些內容為他帶來了大量潛在客戶,成本幾乎為零。 「記住!」創業者說,「你不需要建立平台,你只需要借用平台。」 第三種槓桿:系統的槓桿。建立可複製、可擴展的系統,讓你的產出不再依賴你的時間和精力。比如,你可以建立標準化的流程、自動化的工具、可複製的模板,讓一個人的工作變成十個人的工作。 創業者說,他創業的第二年,開始建立系統化的銷售流程、客戶服務流程、產品開發流程。這些系統讓他的團隊效率提升了 […]

天文台的理想與現實 | CPJobs Career Advice