Recommender Systems 推薦系統 與 深度學習

Github

.

Recommender Systems 推薦系統

 

 

 

 

 用相似的人與你喜歡進行分析,算出哪個跟你最相似

 

 

 

 

 

 

 

 

深度學習

以類神經為基礎

 

DNN DEEP Neual network

深度不固定

高速公路網路

ReLU f(x)=max(0,x)取0與x最大值,

Sigmoid 不管值是什麼都變成0-1 or -1 – 1

Maxout 只取大的點

 

CNN Convolutional neural network 捲基

減少像素圖片的權重訓練

 

RNN

把類神經計算前一個時間與後一個時間

 

深度學習套件

CAFFE 快,python

THEANO 結合GPU,pythonTENSORFLOW 多GPU,分布式計算

LASAGNE 簡化THEANO

KERAS 注重CNN,單GPU

MXNET 多GPU

SKLEARN-THEANO 把CNN當作特徵器

NOLEARN

DIGITS web介面

PYLEARN2 較少改版

DEEPLEARNING4J 用JAVA開發

 

ENSEMBLE 集成學習

建立好幾個模型,做分析預測,看哪個模型訓練結果最高當作輸出

Bagging, boosting, randomforest

 

MORVAN

Github

 

Pip install Keras 先裝好Keras

 

先跑一次regressor-example,之後會產生一個

 

 

再去修改裡面的json

tensorflow改成theano

 

 

classifer結果

 

備註:2017/06/08 計算方法分析與設計 課堂筆記

分群(clutering) & NLP 自然語言處理

 

Github

 

分群(clutering)

 

 input 資料

inputs = [[-14,-5],[13,13],[20,23],[-19,-11],[-9,-16],[21,27],[-49,15],[26,13],[-46,5],[-34,-1],[11,15],[-49,0],[-22,-16],[19,28],[-12,-8],[-13,-19],[-41,8],[-11,-6],[-25,-9],[-18,-3]]

 

以…為中心點分群

 以…為中心點分群

 

 

分群誤差

# 跑分群,從1群到20群,看他的差異值

 

 

分群差異圖

 

 

print “—圖片顏色分群—“

 

原始圖檔

 

 

5色分群

 

 

3色分群

 

 

NLP

自然語言處理

 

 

 

NLP 組成文章

 

EX: We have a dog. We get a cat.

可分解成

We > have

We > get

Have > a

Get > a

A > dog

A > cat

 

因此可組成

We get a dog.

這樣的句子組成

由前後文找出單字後面的字是什麼

再依據後面的單字組成句子

 

 

 

用文章前面兩個字與後面一個字去組成文章

 

 

 

加上像是名詞、動詞、形容詞,根據詞性再去組成句子

 

 

 文法規則

grammar = {

“_S” : [“_NP _VP”],

“_NP” : [“_N”,

“_A _NP _P _A _N”],

“_VP” : [“_V”,

“_V _NP”],

“_N” : [“data science”, “Python”, “regression”],

“_A” : [“big”, “linear”, “logistic”],

“_P” : [“about”, “near”],

“_V” : [“learns”, “trains”, “tests”, “is”]

}

 

 

 

 

備註:2017/06/01 計算方法分析與設計 課堂筆記

Decision Tree & 隨機森林 & Neural Networks

 Github

 .

Kaggle:資料分析競賽

 

 

Decision Tree

決策樹只能使用目標是離散型的,不能試數字型態。

 

Entropy數值越高代表越純

範例 : https://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91

 

 

x=wind

y=no wind

 

用熵去計算

.

Entropy = x * log(x,2)

Entropy = y * log(y,2)

 

選高的推斷哪種原因下去拆

 

 

篩選熵當作從哪層往下做

 

 

 

比較哪level與tweets哪種比較好?

 

以上結果得知用level去分第一層效果最好

.

 

建立決策樹

 

 

 

Random Forests隨機森林

可當作很多的決策樹去做

從一組資料中隨機抽取資料出來,缺點是可能會再次抽到上次抽的資料。

 

類神經網路

 

輸入層  隱藏層  輸出層

O             O          O

O

 

多個輸入透過一個以上的隱藏層,輸出一個以上的結果

EX: 輪胎不同的成分比例,透過類神經網路分析,要硬度多少、耐久多少、彈性等等屬性,進而去決定輸入原料的比例要調配多少。

 

Neural Networks

.

 

 

預測輸出結果

 

 

 .

備註:2017/05/25 計算方法分析與設計 課堂筆記

多元線性回歸&羅吉斯回歸&SVM&自定義SVM數字

 

Github

.

多元線性回歸

 

 

 

羅吉斯回歸

 

 

SVM支援向量機

 

 

 

SVM 以數字為例

 

 

SVM  用matplotlib畫圖

 

SVM 判斷數字

 

PS:紅色字為警告,不影響

 

SVM 自定義數字

.

用EXCEL自訂一個數字,並將該矩陣轉成array形式,就可以用內建的SVM跑辨識數字的功能

.

 用EXCEL自訂一個數字出來

.

EXCEL表格

 

將數字轉成矩陣

跑函式庫得知預測出來的數字是9

.

Numpy.array

 

Matplotlib

.

備註:2017/05/18 計算方法分析與設計 課堂筆記

機器學習&混淆矩陣&KNN&貝式分類法&簡單線性回歸

Github

機器學習分兩種

Supervised 監督式學習

有結果的,EX:iris資料集,有品項的

Unsupervised 非監督式學習

    不知道結果的

 

混淆矩陣範例

 .

假如最近一周的天氣是

下雨、沒下雨、下雨、下雨、下雨、沒下雨、沒下雨

而天氣預報則是

下雨、下雨、沒下雨、沒下雨、下雨、下雨、沒下雨

 .

會有以下幾種情況

預測下雨,實際上也真的下雨 → 準(TP)
預測不會下雨,實際上也真的沒下雨 → 準(TN)
預測會下雨,實際上卻沒下雨 → 不準(FP)
預測不會下雨,實際上卻下雨 → 不準 (FN)

  .

以上狀況的準確度有

TP:2 (28.5%)

FP:3 (42.8%)

FN:1 (14.2%)

TN:1 (14.2%)

 .

 

TP,TN,FP,FN 範例

 

 

 KNN (k-Nearest Neighbors) 最近鄰居法 範例

  優點:準確度高

  缺點:資料多時比較慢

 

 

 先下載這兩個檔案

states.txt

plot_state_borders.py

畫地圖
Import 至python裡

 

平均距離與最小距離

 

 

 

貝式分類法

.

比較信件差異,用不同的信件去斷字斷詞,並計算該封信是不是垃圾信,由該單字站整體信件的比例為何判斷該封是不是垃圾信

.

將這個範例下載起來,解壓縮至檔案底下

信件範例

 

 

簡單線性回歸範例,一個x搭配一個y

 

備註:2017/05/11 計算方法分析與設計 課堂筆記

維度視覺化、資料檢查、資料單位

Github

單一維度畫圖-長條圖

 

 

 

兩種不同的維度畫圖-散點圖

由兩種不同的維度畫出的ys1與ys2