戰略紀錄

Python迴圈

在撰寫程式的過程中,都有機會要重複執行一些相同的運算,但是重複撰寫好幾次同樣的運算看起來非常的沒有效率,所以在這個情況下我們通常會使用迴圈來幫我們完成,本篇就來介紹Python迴圈的使用方式,包含For-Loops、Nested Loops及while-Loops,並且說明用來控制迴圈流程的break及continue指令。 一、range()方法 在開始介紹Python迴圈之前,先來說明一個在執行迴圈時常用的range()方法,主要用來幫我們產生數列,語法如下: range(起始值,結束值,遞增(減)值) 使用說明: range(20):起始值預設從0開始,所以會產生0到19的整數序列。 range(10,20):起始值從10開始,所以會產生10到19的整數序列。 range(10,20,3):起始值從10開始,遞增值為3,所以會產生10,13,16,19的整數序列。 二、Python For-Loops敘述 可以針對Iterable(可疊代的)物件來進行讀取,Python內建幾個常用的Iterable物件,像是String(字串)、List(串列)、Tuples(元組)、Dictionary(字典)等,往後會出文章詳細的介紹。Python for-loop的語法如下: 在語法中,in 的後方就是for-loop要讀取的目標物,這個目標物的為Iterable (可疊代的)物件,一次讀取一個元素,然後用item(自訂變數名稱)來接收每次讀取到的元素,執行區塊中的運算。注意for-loop的結尾需加上冒號( : )及區塊中的運算式要有相同的縮排,範例如下: 在範例中,for-loop的讀取目標物為一個字串,每一次讀取一個字母,並且用letter變數來接收,執行print()方法。 三、Python Nested Loops(巢狀迴圈) 簡單來說,就是迴圈中又有一層迴圈,我們來看一個範例: 這個巢狀迴圈分別有外部迴圈(Outer loop)及內部迴圈(Inner loop),程式執行的時候,會先從外部迴圈取得第一個元素 M ,接著執行內部迴圈(分別為0,1,2),直到內部迴圈執行完畢,才會回到外部迴圈取得第二個元素 i ,然後再一次的執行內部迴圈(分別為0,1,2),依此類推,直到外部迴圈的目標物已讀取完畢,整個巢狀迴圈才結束。 四、Python While-Loops敘述…
學程式助教
December 4, 2019
戰略紀錄

【教學】老闆惹怒工程師可以激起多大的社群效應:Chatbot新手基礎操作案例

聊天機器人從3年前開始被廣泛運用在行銷上,除了最一開始很多人熟知的「貼文留言導流功能」(也就是常見的:留言+1拿懶人包完整版),現在甚至發展到擁有對話智能! 面對使用者私訊,回覆內容也從自動回覆單一訊息新增到輪播圖片、傳送音檔,還有推播工具可以讓我們後續進行用戶聯絡。 現在也不侷限在Facebook了!不少電商也會選擇在LINE@使用Chatbot服務,讓用戶有更方便的聯繫管道。 說到Chatbot,也許你聽過Chatfuel、Chatisfy,現在也有個風格可愛操作介面友善的BotBonnie可以選擇! 現在我們就拿11/13上線的《老闆一句話惹怒工程師》為腳本製作,利用BotBonnie免費版來教大家如何設定基礎操作啦! 這篇文章以「操作教學」為主, 會示範如何建立具備「自動公開回覆單篇貼文留言」、「自動私訊用戶開啟對話」、「當用戶輸入非指定文字(例如發問)時自動回覆」的Chatbot! 以下會分成 PartA:用戶開啟Messenger自動回覆 PartB:自動公開回覆單篇貼文留言 PartC:自動私訊用戶 這三個部份來講解! 如果對發想過程有興趣的人可以看另一篇文章《老闆惹怒工程師可以激起多大的社群效應:Chatbot 新手基礎操作案例》。 那我們趕快開始吧! 【帳號設定與粉專連結】 Step1:註冊一個免費版帳號 進入BotBonnie首頁,並且點選右上角桃紅色選項「立即免費試用」。 Step2:註冊方式且進入機器人管理頁面建立空白機器人 選擇用Facebook帳號會讓連結粉專更方便! 進入這個機器人管理頁面後可以直接建立一個空白機器人,記得幫它取個好名字,以後機器人多了才不會搞混唷! Step3:連結即將操作的粉專 進入這個畫面,你可以看到所有你擁有「編輯以上」權限的粉絲專頁, ⚠️⚠️在按下青綠色的「連結」以前,要記得先讓自己變成該粉專的管理員,只有管理員才能讓Chatbot與粉專連結唷! 按下連結後,過幾秒會出現淺綠色的小勾勾、已連結的文字,這樣就是成功連結啦!…
學程式助教
December 3, 2019
戰略紀錄

JavaScript 的 Leetcode 演算之路(一)

演算法對一個工程師來說是一個非常重要的技能,先撇開在工作上面的實務影響不管,光在求職的過程中,就有許多面試需要考試,而考的內容八九不離十是演算法考題,所以對於一個厲害的工程師來說,演算法尤其的重要,偏偏我的數學跟資料結構沒有這麼厲害,所以我也需要花點苦工來好好的學習,接下來我就會透過leetcode這個演算法考題的網站,學習演算法,把我寫好的題目來分享給大家,可以一起討論。 (more…)
學程式助教
December 2, 2019
戰略紀錄

學程式主題小聚-【利用Python掌握消費者輪廓】

上週學程式主題小聚邀請到了Dennis-戴士翔來進行分享,擅長處理數據、資料分析且擁有許多相關經驗的他,透過個案來為我們介紹如何利用Python進行分析與報告的呈現以及如何建模。 (Dennis先前寫過一篇利用Airbnb來進行分析的文章,有興趣的朋友可以參考:https://pse.is/MCA3U ) 【人工智慧出現後的顧客關係管理(CRM)】 過去所進行的管理策略,是基於統計的方法進行資料的蒐集、擬定策略,慢慢地去了解企業的客戶,而在人工智慧出現後,可以透過程式的套件以及機器學習,更快速的去做分析。 而Dennis也提到若是想要善用人工智慧的話,資料就是一項相當重要的要素。 流量分析 採購商品銷售分析 集群分析 顧客流失預測 分類客戶等級 其中,又以集群分析最為重要,可以幫助企業進行掌握消費者輪廓、精準行銷與服務創新的工作,聽到這邊大家心中應該有疑惑,集群分析是什麼?先看看下方的圖,想想看那些會視同一群,哪些又是不同群。 有想法了嗎?我們來看看可以怎麼分~ 所謂的集群分析就是指將消費者分成一群一群的,並從分類出來得群體當中,找出相像的消費者,看看他們的共通點是什麼,會做出什麼樣的選擇。不過,一步一步將資料分類的作法,在資料量不大的時候做起來並非難事,一旦隨著企業的規模越來越大,資料數越來越多時,該怎麼辦?原本的做法是否就會需要付出更多的成本與時間? 【K-means Algorithm】 簡單來說K-means就是「物以類聚」的概念,是演算法的一種,也是一種無監督式學習(Unsupervised Learning)。可以想像他是一個數學函式y=f(x),「X」代表變數,你也能想像成顧客分析中消費者的「特徵」,「Y」代表標籤,將X丟入函式中就能得出Y。 【個案分析–Instacart Market】 活動的後半段時間,Dennis利用了案例來解釋以及深入的探討,同時,也教大家該如何利用Python建模,讓機器進行學習以分析資料與數據。 讓我們來假設一個情境(上圖),一家公司準備進行業務拓展時,意識到自己對於客戶的認知少之又少,沒有經驗可以依循,又或者是有經驗但卻分散在各處或不同人身上,沒有系統性的整理,以致於不知道該從何著手進行計畫,這時有人提出了下列的方案,你認為身為主管階層的你,該選擇哪種方案帶領公司朝向更好的地方發展呢? 方案一:資料探勘了解消費者 方案二:預測可能爆款商品做採購 方案三:預測折價券發放張數 你應該先問問自己一個問題:「你真的了解客戶嗎?」方案式什麼樣子固然需要仔細思考,不過最重要的是你如何找到公司或是消費者的痛點在哪,他們有什麼樣的需求。當你真正了解客戶的需求後,自然就會理解該做怎樣的決定,背後有哪些細節式需要注意的,避免公司做浪費時間又沒有成效的事情,也能降低風險。…
學程式助教
November 28, 2019
戰略紀錄

利用Airbnb來更了解居住城市,以臺北為例 Python實作(下)

延續上一篇:利用Airbnb來更了解臺北,這篇我們就要來把自己當成是Airbnb的資料科學家,嘗試建立房屋的訂價模型。 先說說流程: 檢查變數-價格相關性,好讓我們對影響變量有個了解 處理類別資料,轉換為Python的機器學習套件:Sklearn看得懂的東西 清理缺失值 切分資料成訓練、驗證集 利用交叉驗證建模,Baseline(基礎比較)我選擇L1、L2 Regression 建立Random Forest、XGboost Regressor 利用model畫出變數重要性,方便我們優化模型 反覆迭代,持續優化模型 結語,談如何優化與比較好的建模姿勢 (more…)
學程式助教
November 28, 2019
戰略紀錄

利用Airbnb來更了解居住城市,以臺北為例 Python實作(上)

導論 這幾年共享經濟興起,外送平臺穿梭在大街小巷協助美食傳送、Uber也成為人們便利的代步工具、而其中Airbnb更是創造了「到別人家住與讓陌生人來自己家住」的嶄新概念。共享經濟的本質就是「更有效率地推動經濟」,在經濟學原理中,我們知道當供給量 = 需求量,就會達到市場均衡,而長期來看,市場會走向一個市場均衡點,市場均衡點其實不能說好、也不能說壞。但有一個可以肯定的點就是: 它讓人們的慾望有效得到滿足,而有效滿足的情況下,人們更容易發現經濟進步的方法。 而共享經濟其實就是在動態的創造市場均衡,讓現金流多了流通的管道、combine不同的需求。既然閒置資源是浪費的,那我們就好好利用它。 包括現在很夯的雲端運算,概念其實也是興起於「共享經濟」,結合規模經濟與處理閒置資源的本質,甚至還有結合區塊鏈的分布式運算系統,讓閒置頻寬得以被充分利用,目前被應用在直播、實況等串流巨大的系統中。 (more…)
學程式助教
November 28, 2019
戰略紀錄

從拉麵店的販賣機理解什麼是 API

API,全名叫做 Application Programming Interface,維基百科上的中文翻譯是:「應用程式介面」。這是一個你可能聽過很多次,但從來沒有理解過的東西,常常聽到工程師說著:「串 API」,但還是不知道 API 到底是什麼。 我原本以為在網路上有關 API 的參考資料已經有很多了,應該可以讓初學者理解什麼是 API。但根據我學生們的心得,好像還是有點困難,只好自己跳下來寫一篇,試著來挑戰這個主題,希望寫出一篇淺顯易懂的 API 介紹文。 如果你問我什麼是 API,我會跟你說:「API 就是拉麵店的販賣機」,所以在切入正題之前,我們要先來研究一下日本拉麵店會出現的販賣機。 (more…)
學程式助教
November 28, 2019
戰略紀錄

以Weka對資料集進行分群與分類分析之實作

前言 : 以下內容皆使用Weka 3.8.2去做演算法的分析,並且文章會根據分群分析、分類分析,按照這個排序分成兩大部分做探討。 兩個部分皆採用兩種不同類型的Datasets ,「現有Dataset」與「創意Dataset」;此外,每一個Dataset都會用兩種屬於該分群分析或分類分析的演算法。 分群分析會使用的演算法為① K-Means(K-平均法)與② Expectation Maximization, EM(期望最大化法);分類分析會使用的演算法為① Decision Tree(決策樹)與② REPTree(快速決策樹)。 (more…)
學程式助教
November 28, 2019
戰略紀錄

網頁不是漂亮、上線就好 !一些你要知道的大小事

網站搜尋迷思:我的網站已經改好了,上網看看結果吧! 其實這裡有一個蠻重要的觀念,影響網站排名的結果,有兩個重要的因素 時間 內容 可能有些人會以為網站一修改完或是新的網站上線,馬上就可以被搜尋引擎找到,但是其實Google是靠著自動爬蟲機器人去爬去網路上的數十億的網站,縱使他的動作在快,效能再強,都會需要一定的時間,有時快則兩三天,慢則三至六個月都有可能,快或慢會根據不同的情況而決定。 (more…)
學程式助教
November 28, 2019
戰略紀錄

動態網頁是什麼?非工程人員你也要知道的網頁知識

前言 在這個網路越來越發達的時代,大家每天都在上網,使用瀏覽器查詢資料、看影片、購物等等,都與網頁有關,當你在使用時,你有沒有想過網頁也有區分為靜態網頁以及動態網頁呢,可能會有人覺得動態網頁就是在頁面上有動畫,會動的就是動態網頁,而頁面靜止,不會動的就是靜態網頁,其實不然。以下內容我們將介紹何謂動態網頁以及靜態網頁,讓你可以更加了解平時所使用的網頁喔。 靜態網頁 在了解動態網頁以前,也需要先了解靜態網頁究竟是什麼,這樣才能夠真正搞懂靜態跟動態究竟差在哪裡。 超文件標示語言HyperText Markup Language,簡稱:HTML,HTML是網站建置的基礎技術,常與CSS與Javascript配合成一個適合觀看的網頁,讓瀏覽器去讀取,一般判斷方式為網頁副檔名為html或htm皆為靜態網頁,靜態網頁的優勢為容易為搜尋引擎所接受,所以很多動態網頁會將動態網頁轉變成靜態方式,就是所謂的【偽靜態網頁】來提高搜尋引擎的友善度達到排名優化的成效。 當用戶瀏覽器通過HTTP協議向Web伺服器請求提供網頁內容時,伺服器僅僅是將原先的HTML文檔文檔傳送給用戶瀏覽器,用戶看到的內容是標準的HTML文黨的內容,可能在另外加上GIF格式的動態圖片或是Flash動畫等等,如果想更改網頁上的內容,就必須手動更改HTML文檔。 (more…)
學程式助教
November 28, 2019