-
機械學習
Supervised Learning
-
Supervised Learning
- 餵資料讓電腦學出規則
-
同時可以INPUT 跟OUTPUT
- X input
- Y output
-
1類,Classfication 預測的目標是類別型的變數
- 男女/EMAIL類別
-
2類, Regression (回歸曲線) 預測的目標是實數
- 股價
- 身高值
- 搜尋引擎
- 對input 與output之間有比較確定的"老師"去告訴你資料是什麼
- 3. Clustering
- 4. Probabilistic Graphical Model
-
5. Transfer learning
- 把過去的資料領域轉換到另一個相似的領域
-
6. Multi-label learning
- 同時有多個標簽類別
- 7. Multi-instance learning
-
8. Cost-sensitive leering
- 正樣本跟負樣本猜錯時的代價會非常大差距時(例如人是否生什麼病)
-
9. Active learning
- 資料裡有標注的資料也有沒有標注的資料時,希望能都使用或優化沒有標注的資料時
- 10. Semi-supervised learning
-
Differend type of output
- 需要用大量的INPUT資料去TRAIN出讓電腦判斷的規則,產出OUTPUT結果
-
Terminology
- training data
-
test data
- 測試train出的模型效果與效能
-
Features
- 給定特定的資料input
- 又叫Attributes
-
Target Variable (預測的目標)
- Classification
-
Example
- 分支主題 1
-
Unsupervised Learning
- 沒有Y(不知道預測的目標)
- 大量的X FEATURE
-
A variety of ML Tasks
-
1.Classification
-
1/2
- C=2 Binary CF(classification)
- C>2 Multi-class CF
- Linear or non-linear
-
Example
- 想辦法找到規則的
- E-mail spam check
- 用決策樹想辦法找到一個規則
-
2.Regression
- linear regression
- support vector regression
- Example -股價預測
-
3.Clustering
- 沒有標準答案
-
Unsupervised Learning
- 沒有Y(不知道預測的目標)
- 大量的X FEATURE
- 把資料分成多個群
- 沒有特定的分群方式
- others
-
Overfitting Vs underfitting
-
Overfitting
- 過度複雜的訓練資料
- 造成模型過度複雜
- 理想值
-
Underfitting
- 資料太簡單
- Quiz
-
The Following Schedules
-
Simple
- Unsupervised Learning
- supervised Learning
- KNN and K-means
-
KNN
- Example of movie type classification
-
K Nearest Neighbour(KNN)
- 找多少個Neighbour? = K
- K= 超參數(由人所給與的參數)
- 參數=>自已會學習的參數(一般在AI領域的用法)
- K=1 & K=4時 同一筆資料會被認為是不同的資料分群
-
KNN Classifier
-
how to select K
- K 太小時 EX取1 , OVER FITTING
- K 太大時 EX K取150 , Under FITTING
- Overfitting Vs underfitting
- Overfitting
- K太小
- 理想值
- Underfitting
- K太大
-
Discussion
- How to select K
- How Fast for Model training/testing?
- 即時效上的要求
- 需要測試的程度跟測試的複雜度
- 依實際的案例決定作法
- 事先作好分類的資料結構
- 如何加速?
- how to measure "distance"?
- 是否適合適用歐式距離的計算方式?
- Can we appoly Knn when some features are categorical? (目前較為困難, 除非能定義點跟點之間的距離)
- Can we use KNN to do regression?
-
Discussion
- why feature normalization?
- 需要將資料的散布維度變成是相似距離的分布
-
Quiz
- trainning Data
- x=height ,y=gender
-
K-means
- KNN(有要預測的目標)
- 分群(沒有要預測的目標)
- 需要比較低的建立MODEL Training時間
- 需要的測試時間較高
-
Decision
-
Decision Tree
- Training Set
- Learned Decision Tree(如何根據資料產生出決策樹)
- How do make Tree?
- 需要比較高的training時間
- 需要的測試時間較少
-
primary issues in tree construction
- Expected information (Entropy)
- 用亂度來作為決策樹產生方式
- Entropy = 0 時資料最為乾淨
- 用不同的參數作為分群的決策樹判斷, 測出亂度
- 從分群後的資料亂度 減掉 原本資料的亂度, 看亂度進步的程度愈高者優先做為分群的參數
- ID3 Entropy
- Attribute selection
- Example use (AGE)
- income
- student
- credit_rating
- AGE(分成3群)
- youth
- middle_age
- Senior
- Gini-Index
- 目前比較常見
- 因為計算效率上較高
- 不一樣的條件的決策規則就有不同的
-
Random forest( Muti Tree)
- 很多顆樹合在一起的結果
- 1.每顆樹只用一部份的FEATURE
-
2.每顆樹都只能用一部份的TRAINING DATA
- 同1萬筆資料但放入重新再取資料
- 3.用多數決的方式去看10顆樹的預測結果
- 實務上很好用
- =Like XG bost?
-
XOR => A & B都有時
- 決策樹的順序在特定情況時會不適用
- 是很短視近利式的判斷模式(當第一步是A或B時都會最佳化,但C(以XOR為例)C=A跟B的交集時才會是最適合的,但決策樹無法判斷類似此類因順序不同而有不同的最佳解的狀況
- 如果希望決策樹能解決短視近利的問題,那可能會在每一個判斷環節都要作全DATA的重覆比對的判斷,Training所需要花費的代價可能會增大非常多
-
Linear Regression
(打不出曲線的代表符號所以用ð代替)
-
Define the form of the function f(x) explicitly
- – If you believe that x and y have a non-linear relationship,
- you should assume a non-linear f(x)
-
Find a good f(x) within that family
- – i.e. find good θ0 and θ1 such that "
- 預測的Y跟實際觀測到的Y之間的距離=>Measuring ERROR
-
Simple linear regression
-
• For now, assume just one (input) independent variable x, and
- – Multiple linear regression assumes an input vector
- one (output) dependent variable y
-
Multiple Linear Regression
- X
- Totle solution
- 找到每一個決策樹
- FINDING Good parameters
-
Gradient Descent
- Gradient Descent
- Learning Rate =需漸漸給小
-
曲線ð
-
Overfitting Vs underfitting
- Overfitting
- d = 9
- 理想值
- d=3
- Underfitting
-
Consider Using Close for solution
- 需要極大量的資料
- 需要高度的運算資源與儲存空間還有機器
- 資料量不多的情況可以考慮
-
Consider Using Gradient Descent(GD)
-
Required space
- X=[x]
- y
- ð feature
- Z
- If n = 1M(百萬)
- 少於80GB 的公式解的空間需求
- 效能極大化優於公式解
- 對於無法用公式解的問題(無法定義出公式)
-
Quiz
- If the features are all categorical
- – Can you apply linear regression?
- – Can you apply decision tree?
- – Can you apply knn?
- • If all features are numerical, which one runs faster during “test” phase?
-
– Linear regression? Decision tree? KNN?
- 1.liner regression
- 2.decision tree? (如果不會重覆拜訪太多時也許比較快)
- 3.KNN(肯定最慢)
-
When to stop updating?
- • Possible stopping criteria:
- – Improvement drops (e.g., < 0)
- – Reached small error
- – Achieved predefined # of iterations
-
Regularization to avoid overfitting
- 正規化
-
Regularized linear regression
- 正規化的線性回歸值怎麼取?
- 最常用 Ridge Regression
-
最常用 Laso Regression
- 取絕對值
- 能讓ð值能容易變成零
- 比較能取得Feature
-
how to select <landa>?
- 用實驗的方法決定
- 跟線性回歸值ð的方式類似,先隨意給一個值再去跑測試
-
Stochastic gradient descent (SGD) –motivation
- ð值希望求出愈小愈好
-
Gradient Descent
- Gradient Descent(GD) look all training
-
SGD 1 time look one data training
- 資料量非常大但只需要一部份資料就能求出曲線ð的時候SGD有比較大優勢
- Supports online learning
-
Mini-batch gradient descent
- 介於SD與SGD之間的數量
- 通常最常用這個方式作Gradient Descent
- 一次要用多少筆資料(用Batch)
-
Evaluation (regression)
-
Evaluating regression models
-
Mean square ERROR(MSE)
- 預測的準時, 不準的值會被放大
- 對平方值的ERROR狀況作處理(特別誇張的數值)
- Mean Absolute Error (MAE)
-
Median Absolute Error (MedAE)
- 取絕對值的中間值,比較不會被極端值影響
-
• R2 score (coefficient of determination)
- 平方和
- 用來比較你的Model跟另一個mean Model(比較差的)作比較
- 分母是mean model 分子是自已的 model(都取平方和)
- R2愈接近於1時效果愈好
- 最大值為1(最好)
- 最小值接近於負無限大
- A closer look of R2 score (coefficient of determination)
-
Logistic Regression( Classfication 的方式 )
- Classification by linear regression?
- 能否找到一條曲線(ð)去預測腫瘤的分類方法?
- 但會受到許多極端值的影響
-
Logistic Function
- y=公式解
- 取得S-shaped 的curve
- 讓曲線愈接近
- 希望找到對的ð0跟ð1
- 用預測值跟實際值的距離有多少來判斷MODEL
- 因為會接近於0到1之間, 所以接近於機率的計算方式
-
Probability and likelihood
- 三條公式是對每一筆TRAINING DATA的y=1 或y =0的機率是多少?
- 整個 traindata (觀察到的整個Traindata的資料)
- 找到對的ð0跟ð1
-
Likelihood and log likelihood
- 最log(最大)=logð
- 取LOG後的數值仍然可以保持跟LOG前的曲線相近
- 取LOG的好處, 相乘變相加, 會加快
- 數值上會比較容易讓最後的值變成接近零
- 數值上的原因讓計算的資源可以大量的減化
- 找到最大的值的負值=>等於最小值的ð,所以讓LOGð加上負值
- 目標要求得最佳ð的值
- 負的最大化的LOGð=“cross entropy loss”
-
怎樣定義接近
- 在linear regression時是要取得最小的ð值
- 在Logistic Regression時會取得最大的ð值
- 可用L1 or L2 mode
- 要一直對ð作最佳化的UPDATE
-
Quizzes
- Stochastic gradient descent for online learning a batch learning algorithm?
-
A few words on SVM
- SVM: Support vector machines
- lost function is =>錯誤在可容忍的範圍時就當成是沒有錯誤( 零)
-
Loss functions
- hinge loss
- square hinge loss
- logistic loss
-
Non-linear feature mapping by kernel trick
- 一般要加非線性資料時用人工的方式生成非線性的資料(EX 兩兩相乘)會大量的增加資料量跟運算量
- 可能可以產生無限維的資料的ð值?(意思也許是可以自動生成大量的自動生成大量的資料?)
-
心得?
- <心得>上一堂的統計課中的離群值計算可以套用?
- 可能可以產生無限維的資料的ð值?(意思或許是可以自動生成大量的自動生成大量的資料?)
-
Classification metrics
- • Accuracy
-
• Precision
- Confusion matrix
- 猜是正的而且是正確的比例有多少?
- 若故意只回傳有信心的正樣本則正確比就會高(危險的狀況)
-
• Recall
- 所有正樣本裡有多少被猜中是正的?(以搜尋引擎為例)
- 如果全部的預測都回傳為正的就等於完全猜中(危險的狀況)(與Precision 是Trade off的相對關係)
-
• F1 score
- 分支主題 1
- • Precision recall curve
-
• ROC curve and AUC
- 性質:若正樣本10%,負樣本90%, 則永遠猜樣本多的就會對
- 若預測效果曲線愈靠近則愈貼近於曲線的左側
-
即使分佈不平均, 有ROC CURVE 就能計算AUC
- 猜的愈接近0表示猜的愈不好
- 如果永遠猜多數 AUC=接近於0.5
- 最理想的狀況
- AUC=1
-
Data Preprocessing
- 若某個值有3個FEATURE
-
We may encode UK as “1,0,0”, Japan as “0,1,0”,and “Maxico” as “0,0,1”
- 若直接用1,2,3分類, 則等同於假設距離是固定的
- 如何把 encode categorical features by natural numbers?
-
Selecting hyper-parameters
-
• Grid search
- – A fancy name of exhaustive search
- – Manually specify subset of the hyper-parameter space and step size
- – Try all parameter combinations and check their performance (by cross-validation)
-
• Random search
- – Surprisingly good performance
- • Among the tunable parameters, important ones are only a few
-
Bayesian optimization
- – Iteratively picking hyper-parameters for experiments
- 關鍵的資料TRAINING的流程與結構圖
-
Multi-class classification
-
• Leverage on binary classifiers
- – One-vs.-rest (aka one-vs-all)
- – One-vs.-one
-
• Other methods
- – Decision trees
- – KNN
- – Neural networks
-
Bias Vs Variance
- overfitting and underfitting 如何找到?
-
Bias
- model 太簡單 到F的距離為BIAS, 不容易到到F
- 訓練的樣本數不夠多, 則可能資料不符合大多數
- Data size vs model complexity
-
Model Selection
- Model selection的方式
-
• Domain knowledge is important
- – If you know the relationship between x and y is linear,why choose quadratic?
-
• Algorithm selection is important
- – complex enough to fit the training data well, and
- – simple enough to prevent overfitting
-
• Data size is important
- – Applying complex models on small data tends to over- fitting
- – Applying simple models on massive data tends to under-fitting
-
Q&A
-
Training data & testing data 的分別與差異?
- 要小心不能把不該把時間序裡的資料(例如未來的資料放到現在的資料中)
- 切DATA的時候, TRAINING DATA應該要事先先作
- 資料的Y值最好是相似的
-
在作類別的分類時
- 資料隨著時間類別會增加的狀況時? 可能不太適用於Supervised Learning
- 案例( 將SVM架構化的資料變成 符合, 將FEATURE都作了normalization
-
案例分享1
- 對每個頁面作權重評分
-
網路世界的資訊
- 頁面分數
- 持續停留的時間
- 點擊的次數
- 再返回的次數
- 用新的變數提升模型表現
-
設備故障檢測分析
-
航空公司
- 最後一哩路的故障檢測
-
面臨挑戰
- 何時需要換零件的"最後一哩路"
- 非預測的維修支出是大的成本費用
- 傳統資料分析僅
-
利用路徑分析
- 將時間序放入分析
- 在事件與事件之間的時間序放入
-
企業網路安全分析
- Cyber Security Intelligence?
- 找到
- 每個人的設備在瀏覽過的網站形成的路徑進行分析
- 用路徑相似度作分群與分析
- 觀察已知的感染病毒的機器的網路節點的次數
- 下班後最好能關掉電腦避免被當作跳板
- 連線的平均路徑比一般使用者長
- 先內部CHECK是否是白名單裡的網站
- 再外部CHECK重要的網站節點是否有問題?
- 分析出分群的結果反饋
-
金融反詐欺分析
- 詐欺的PATTEN很難找出
- 99.5%的誤報比例
- 低檢出率
- 快速演進的詐欺手法( 不同手法不容易判斷 )
-
怎麼把交易變成圖片?
- Input 把交易的資訊輸入
- Raw features 找出前八大關聯性資料的關聯
- 用強關聯的資料, 針對每個人的交易去產出強關聯的資料圖像
- 成功的偵測率提高50%
- 用八個不同的循迴去作演算法的優化
- 整合線上交易
-
結論
- 如何建立一個優質的資料平台
-
資料架構
- 如何建立一個邏輯式的資料中心平台
-
資料模型
- 跟據特定業務才去取相關的資料
-
資料品質
- 透過使用者經驗與業務規則,建立資料的分析程序,並將問題反映給前端系統負責人員
-
資料分析
- 首重價值性問題的反應
- 資料呈現
-
AIA總校資料的
- 視覺化呈現
- Data Analytics is a perpetual Project
-
案例分享2
The Reality of data competition
- Outline
-
Netflix Prize
- 問題: 如果比賽辦3年(增加推建的精準度)
- 1.3年的時間 百萬獎金大懸賞
- 2.使用者體驗的研發外包絕佳案例
- 3.競賽與實務上的差異
-
Life cycle of data competition
-
enterprise
- Netflix
- Airbnb
- google
- kkBOX
-
data
- image
- text
- User Behavior
-
solution
- 影像相關的解法
- Forum 的sharing
-
participant
- 專案領域研究者
- 工程師
-
what to learn
- participant
-
data provider
- how to define our problem
- how to prepare the data
- let more people know the data we have
- what's the most appropriate way to solve the problem
- 對一個問題該怎樣好好去處理
-
Data Competition
-
Machine learning
- price prediction
- user classification
- recommendation
-
得到Training Process
- 資料提供方希望
-
Deep learning
- NLP
- Image Classification
- object detection
-
可以得到Feature Engineering
- 要餵什麼樣的資料進去?
- 要能變成TABLE類的DATA
-
Process of data science
-
define problem
-
define metrics
- data exploration
- Model building
- Model Evaluation
- Model Testing
- process
-
define problem
- fine the problem
- translate the problem
-
Evaluation Metrics
- 實務上可能不只在乎推建的精準度
- 希望用戶看到的東西是愈多愈好, 能有驚奇的效果
- 所以會希望能在推建時精準度不要下降太多但能增加其它想達到的效果比如更有趣, 更多產品被看見
-
Data Exploration
- 了解我們的資料
- 變成內部服務時會有不同的時間區段的問
- 資料的使用情境會各自有不同的情況發生
-
Model Building
- 很難知道模型從中學到什麼?
-
為什麼熱狗賣的變差了?
- Bread
- flavor
- sauce
- Weather
- Location
- 找出模型在建模的過程中得到
-
Simple/complex(feature/model)
-
feature
- simple
- complex
-
model
- simple
- 容易被implement or debug
- Logistic Regressing
- complex
-
Production
- 要在模型的成效跟複雜度之間作做權衡
- Computation effort
- Difficulty of implementation
- Difficulty of explanation
- "Simple is GOOD"
-
the Difference in character
- Data Scientist Definition
-
Data Product Pipeline
- ETL
- DATA的整合與整理
- Model Building
- 個別的分析
- Analytics
- 成為一個 produce
-
Data Product Characters
- data engineer
- Machine learning Engineer
- Data Scientist
- Business Analyst
-
Summary
- 什麼是資料競賽
-
User 使用者行為分析
- 一開始用戶在什麼時間點聽什麼歌
- 滑動的頻率非常高時?
- 點擊的次數
- 操作的變動
- 時間點的不同?
- 把時間點收集再作分群
- 頁面層級的分層
- 要設定一些假設的使用者情境
- DATA整合的方法, 對齊資料的方式
-
案例分享Whoscall
- 2016年(思考獲利)
- 考慮到離線或網路不好的環境下如何內建
-
很大的資料庫的VALUE
- platform
- phone
- telco
- IOT
- Government
-
詐騙集團的範例
- 為什麼會有斷離的時間區段?
- 因為罪犯會去熱身
-
Business Models
- 核心價值在對電話號碼的理解
- 9成的營收靠廣告
-
怎麼去協助其它人?
- 該接的電話但沒有被容易識別的方式
- 告訴消費者這個號碼是該去接的
- 普遍的電話接通率是3成
- 商業電話接通的效率是很低的,所以作了 Whoscall ANSWER
- 電話助理
-
Trust as a Serveice
- 辨視AI的技術
- AI Strategy
-
How to upgrade whoscall
- Call Embedding Via Deepwalk
-
Frauddetector 2.0
- 初期誤報率過高
- Offline Database
-
Personalized Database
- Deepwalk+Kmeans分成150群
- 分群後Hit rate =>1.8% & 1.2%的提升率
-
資料分析之前需要的
- Big data company in facts
- 清理資料
- 資料在分析之前需要先被整理
- 錯誤的資料=>沒有資料
-
Robot call
- 愈快回價值愈高
- 判斷電話號碼是不是活著的
-
如何判斷Y?
- 以回報率來判斷
- 時間
- 頻率
- 量
- 特殊的行為
- 先作預測/ 再交由人確認
-
電話的屬性
- 由電話的特別行為的特徵屬性上作判斷的辨別
- Phone number 最初不是拿來用作ID,但現在大量的被使用