fbpx
AlgorithmPython初學程式機器學習

Python機器學習EP. 2 感知器perceptron learning algorithm

哈囉,各位好,我是Teresa,本集的重點是二元分類問題,會說明感知器以及PLA演算法。以下先讓我們回顧上集說了什麼吧~ EP.1回顧 在機器學習中,為了找到一個最適合的假說,存在著演算法(Learning Algorithm A)和假說集合(Hypothesis Set H)。演算法A 從大量資料集合D 進行觀察,接著從假說集合H 中挑選一個最符合我們期望的函式g。 上集提到的例子是如果銀行想要做出一個機器學習來判斷:當客戶申請核發信用卡時,銀行應不應該發卡給該客戶。由這個例子我們可以清楚的知道此機器學習需要提供的答案只有兩種:發卡或是不發卡。這類型的問題我們可以稱為二元分類問題。從客戶提交的申請資料x中經過函式g,來得到y(發卡)或是n(不發卡)的結果。 完整筆記可點此連結 感知器假設集(Perceptron Hypothesis Set) 銀行從過往的經驗中掌握了客戶的屬性資料,如:性別、年齡、職業、薪資、信用狀況......。這些資料都可以轉換成以下式子。 銀行也能針對這些屬性資料進行重要性的排序,給予權重,例如:薪資權重給2,信用狀況如是負債權重給-1等等。 銀行會設立一個門檻值T(threshold),當上述條件的總分大於門檻值,才會發卡給客戶,反之,則不發卡。雖然有機率總分會剛好等於門檻值,但機率非常小,可忽略不管。 為了方便識別,我們將輸出的結果y(發卡、不發卡、忽略不計)轉為符號表示,這樣的符號在機器學習裡被稱為label。 從算式中,我們很難直接知道畫面看起來是什麼樣子,如果應用在二維平面上,會如下圖,有一條直線將畫面切割成兩個平面,而資料中的點會落在線的兩側,一側為正;一側為負。而機器學習所期望的目標便是找出一條直線,能將不同的label正確劃分在兩個平面上。這樣的感知器便被稱作二元線性分類器(Linear Binary Classifiers)。 (圖片來源:課程截圖) 感知器學習演算法(PLA) 感知器中的所有集合H,代表了平面上許多不同條的直線。…
Teresa
December 29, 2020
Python初學程式機器學習

Python機器學習EP. 3 機器學習的不同問題

哈囉,大家好,我是Teresa,這集的重點會在機器學習所要解決的問題依照不同的面向分類有哪些種類。如下圖,依照機器學習的不同問題,大致可以區分成四種面向:輸出的空間、資料的標記種類、輸入的資料、給電腦資料的方式,依照四種面向來一一詳述吧! 一、根據輸出的空間不同 二元分類 Binary Classification: 二元分類的問題其實就像是非題,我們餵給機器的資料,經過假說的函式後僅會輸出是或否的兩種結果,以圖來表示的話便是將平面區分為兩個平面以表示是或否。 二元分類在機器學習當中是很基本、很核心的問題。是非題的應用相當廣泛,之後理論推導與實際的演算法都會由二元分類出發。 二元分類的應用如下: 信用卡核發(回顧上集) 垃圾郵件分類->是垃圾郵件或不是垃圾郵件 醫療上的診斷->生病或未生病 預算的投入->獲益或不獲益 答題->正確或不正確 多元分類 Multi-class classification: 輸出從原本二元分類中的是或否兩種結果,變為有多種結果,近似於單選題。多個選項經過假說的函式後會輸出其中的一種結果,常用在視覺或聽覺辨識。 多元分類的應用如下: 銅板分類(1元、5元、10元、50元) 數字辨識->郵遞區號辨識(0-9) 圖片辨識->動物、水果分類 郵件分類->垃圾郵件、促銷活動、重要的郵件等 迴歸分析 Regression: 輸出的標籤不同於其它分類問題為零散的值,迴歸問題的輸出值會是一個連續的範圍。…
Teresa
December 28, 2020
Javascript小白學程式成長日誌程式新手

網頁日記 # 8|Iris 程式小白

操作完簡單的 Javascript 實作後,馬上來進到下一步 —— 認識重量級函式庫! 那~ 我們馬上來看看 React.js 能帶給我們哪些便利之處吧~ 本篇日記針對 React 的十大特點做概括性的介紹 希望新手朋友們看完此篇對於 React 就能有最基礎的認識&了解 😆   1. React 超基本介紹 為 Javascript 的函式庫 用於建造可重複使用、元件化、具互動性的 UI…
iris
December 5, 2020
Python初學程式機器學習

Python機器學習EP. 1 初步認識機器學習

前言 大家好,我是Teresa,前陣子因為一場線上小聚,讓我開始正式接觸機器學習,參與前和參與後都順手寫了一篇文章,連結在此附上,在開始閱讀此篇之前,可以先看看你有沒有理解文章中提到的概念。 機器學習從零開始-簡單認識基礎概念 | Teresa初學者筆記 機器學習的介紹與應用-Python主題小聚直播回顧 總之,在這場線上小聚過後,Teresa就決定要更深入的接觸機器學習,於是在Coursera上找了一堂基礎的機器學習線上課程,之後的筆記都會環繞在這堂課上,那就讓我們開始吧! 每一個機器學習的使用者應該要知道什麼? 哲學上機器學習的思想 數學上的工具 演算法的設計 它們的使用:包含什麼時候可以使用、為什麼可以使用、如何使用、如何會變得更好 什麼時候可以使用機器學習? 在了解什麼時候可以使用機器學習之前,不妨先思考看看什麼是「學習」? 以人類的角度,學習會從「觀察」出發(通過我們的五感)進而學習「轉化」成一項技巧 因此機器學習便是用電腦做為「學習主體」來「模擬」人類學習的過程 Note:觀察(資料)->機器學習(演算法)->技巧 技巧指的是「增進」某一方面的表現。 結論:機器學習的過程是從資料出發經過電腦的計算最終得到某種表現的增進。 若你想達成上述的目的,便可以使用機器學習。 為什麼要使用機器學習? 當我們遇到一個問題想要用程式解決的時候,有些問題單靠人力試圖將規則一項一項的條列出來是非常困難的。 舉例來說:如何辨識一棵樹?我們很難用語句完整地把每一項樹的特徵描述出來。 因此,我們讓機器透過「觀察」來分析辨識。 機器學習的應用…
Teresa
December 2, 2020
小白學程式工程思維程式新手

網頁日記 # 7|Iris 程式小白

恭喜你們看到倒數第二集啦! 可喜可賀🤩  相信你學 JS 的目的應該也是想走前端或是做出屬於自己香味的網頁吧~ 那這集就是你發揮所學的地方嘍(摩拳擦掌🤛  延續上集下拉式選單的精彩製作,這集要來教大家如何最簡單生出看起來好像很厲害的圖片輪播 Carousel!一起練功吧~   使用 Bootstrap 前注意事項: 使用前必須按指示寫入指定 CSS 和 JS 程式碼(如不清楚可回上一篇日記 review) Carousel 功能不會自動化調整輪播畫面尺寸,因此必須另行定義 Carousel default 功能無附加箭頭 (▶) 和指示…
iris
November 20, 2020
Python

機器學習的介紹與應用-Python主題小聚直播回顧

哈囉,大家好,我是Teresa,10/29的晚上參加了機器學習的主題小聚,可真是收穫滿滿,講師說話非常有邏輯架構,在此感謝蝦皮的兩位工程師 Kevin和Vincent 蒞臨快樂學程式的主題小聚直播活動來和各位觀眾互動,更感謝有熱情的觀眾支持,讓這次的直播能圓滿落幕。 此篇會做主題小聚的重點摘要與回顧,如果喜歡、想追蹤我更多筆記,可以加入程式小白的 JS Python 學習群的社團。社團中也會有其他學習夥伴和你一起討論、交流、互動哦! 什麼是Machine Learning? 給機器或電腦資料並搭配相對應的看法,它能從過去人類給的資料中學習模式甚至預測,以做出比人類更好的行為或是技術。它的趨勢從2014年開始飆升,都要歸功於硬體技術的發展,讓過去沒辦法計算的部分都可以開始計算。 資料分析師:整理需求端的需求,並從資料庫中抓資料來分析 資料科學:用數學模型把分析完的結果做預測或自動化 ML:作資料的安排或API給後端或前端工程師取用 Machine Learning跟Deep Learning的差異: Machine Learning:人工智慧的一種方法 Deep Learning:指的是ML中的一種類型,如:人類神經元的模型 Machine Learning的三大主角 所有的機器學習都有共同目標:找一個對的 Y =…
Teresa
November 11, 2020
Python初學程式程式新手

Python初學總整理 第9講:Numpy函式庫

嗨,大家好,我是Teresa,這集想來和大家介紹在資料分析、機器學習領域中很經典、必定會用到的函式庫-Numpy,目的主要是做數據的處理,但內容不會涉及統計的理論和延伸,只會做一些基礎的功能介紹和簡易的實作程式碼提供給大家。 什麼是Numpy? Numpy是一個免費且開源的Python函式庫,專門用來處理陣列,由Travis Oliphant於2005年創建,但Numpy的前身是Numeric,是由Jim Hugunin和其他協作者共同開發,Numpy結合另一個同性質程式庫Numarray的特色,並加入了其他擴充功能。原始碼在這個網站中:https://github.com/numpy/numpy 為什麼使用Numpy? En kral yeşilçam porno videoları izlemek için saplamaca'yı ziyaret edin. En güzel yeşilçam pornoları bu sitede 在Python中,我們也有list來存放清單,但其實處理速度很慢,Numpy處理陣列的速度比list快50倍。原因是Numpy會將資料儲存在記憶體中的一個連續位置,可以高效率的找到他們的位置、並使用資料。 安裝Numpy pip…
Teresa
November 11, 2020
Python初學程式程式新手

Python初學總整理 第8講:Matplotlib套件

嗨~各位好,我是Teresa,這集想要和大家介紹Python中實用的套件-Matplotlib,原因是如果心中有個想法想要去實踐,雖然有資料,但需要說服夥伴的話,將你手中擁有的數據轉為圖表是很重要的,這樣一來,你說的話有說服力,觀看者也能簡單易懂。那我們就開始吧! 什麼是Matplotlib? Matplotllib是Python的視覺化套件,可將資料視覺化,也可以稱做繪圖庫,可以和NumPy一起使用。它是由約翰.亨利所創造的,不但開源,且各個平台間也具相容性。Matplotllib的代碼庫在此 github。 如何使用Matplotlib? 要開始使用Matplotlib,就如同其他模組和套件一般,要先安裝並匯入。 pip install matplotlib #安裝 Matplotlib import matplotlib import matplotlib.pyplot as plt #匯入Pyplot 套件並命名為plt 安裝成功後就可以畫圖囉! 繪製 x 和 y點 import…
Teresa
November 11, 2020
直播筆記

Python網頁爬蟲—將資料存到SQLite資料庫

任務:把上週爬取每週文章的標題和發佈日期存到SQLite資料庫 前言 用Python網頁爬蟲取得資料後,最後一個步驟,會想把資料存到資料庫裡,今天以SQLite為例分享實作部分。 為什麼我要用SQLite? SQLite是非常輕量型的關聯式資料庫,所以比較適用於小型應用程式,比如APP,存放資料量沒那麼大的應用程式,也是跨平台資料庫,它和一般企業級資料庫(Mysql......),最不一樣的地方是企業級資料庫都會有server,server也就是資料庫,用戶端這邊通常就要安裝,這個資料庫的客戶端,有點像是小的驅動程式,那我們要存取資料庫的時候,就是要用客戶端去跟資料庫的server進行存取還有資料的操作。那SQLite資料庫非常簡單,就是安裝後,用戶端就可以直接執行,可以直接存取資料庫裡面的資料,簡單來講,一個資料庫就是一個檔案,雖然輕量型,但大部分.sql的語法都有支援,而且也是一個免費的資料庫。 第一步驟:安裝DB Browser for SQLite,用這個工具去建立資料庫 建立一個資料庫,然後在資料庫裡建立一個資料表,命名為post。在資料表裡定義儲存的欄位。先建立一個title的欄位,它的類型是text(字串),再建立一個來存發布日期的欄位publish,一樣定義類型是text(字串) 在爬蟲專案資料夾底下新建資料庫,存檔 第二步驟:使用python串列的資料結構來進行儲存,把資料打包成包裹 定義result串列,每次爬到標題和發佈日期後,就要把它存起來,存到串列裡。👩🏻‍💻results.append((title.getText().strip(),) + (published.getText().strip(),)) 把每一篇文章的標題和發佈日期打包成元組(tuple),如果只有一個值最後要加逗點,這樣python才知道這是一個元組(tuple) 把標題和發佈日期加入串列裡面(results.append),append是加入的意思(有for就會把每次標題和發佈日期全部都加入串列裡) 🔍元組的賦值:a,b = 1, 2 第三步驟:寫入sq資料庫 sq資料庫內建在python裡面,直接👩🏻‍💻import sqlite3這個模組,接下來把網頁爬蟲專案連結到資料庫,用👩🏻‍💻conn =…
amyamy
November 10, 2020
Podcast 系列初學程式小白學程式程式新手

Podcast JS 特輯 #1|魔鬼藏在細節裡 — 你真的了解變數嗎?

https://open.spotify.com/episode/6qzhzsD65TWVHNc10jbNhC 變數的概念好簡單? 的確,真的不難,但有非常多概念關乎到 Javascript 基本功的扎實度,這也是身為初學者必須注意和掌握的地方 這集 Podcast 會和大家聊的是 JS 變數的基本邏輯,包括定義、指派等等,更會討論到雙重指派和 hoisting 的情況下會產生哪些奇特的狀況,當然我們不免會提到的是 JS 身為動態型別語言的特性&原理和 hoisting 的背後隱藏邏輯~    其他針對變數定義上的建議上相對而言與定義上的規定同等重要,譬如說怎麼樣才是好的變數命名法和怎麼樣才符合 JS 中變數的定義標準等等都是直得留意的地方。另外,最後也和大家提到 ES 6 中 let 和…
iris
November 9, 2020