Coursera-吳恩達-機器學習-第七週-程式設計作業: Support Vector Machines
本次文章內容: Coursera吳恩達機器學習課程,第七週程式設計作業。程式語言是Matlab。
本文只是從程式碼結構上做的小筆記,更復雜的推導不在這裡。演算法分兩部分進行理解,第一部分是根據code對演算法進行綜述,第二部分是程式碼。
本次作業分兩個part,第一個是using SVM,第二個部分是using SVM to build a spam classier.
1 Support Vector Machines
Part 0 Initialization
clear ; close all; clc; 常規操作。
Part 1: Loading and Visualizing Data
視覺化test data。
Part 2: Training Linear SVM
使用函式svmTrain()訓練SVM,用到的是一個simplified version of the SMO。
並畫出結果。
Part 3: Implementing Gaussian Kernel
使用核函式對非線性資料進行分類。
Part 4: Visualizing Dataset 2
Part 5: Training SVM with RBF Kernel (Dataset 2)
使用函式svmTrain()訓練SVM, 並畫出結果。
Part 6: Visualizing Dataset 3
載入一個新的資料集,這個資料集已經分出來了the training set 和 the cross validation set。
Part 7: Training SVM with RBF Kernel (Dataset 3)
在函式dataset3Params(X, y, Xval, yval)中編寫迴圈,迴圈不同的Gaussian Kernel引數,用 the cross validation set Xval, yval to 選出最好 C and delta parameter。最後畫出結果。
2 Spam Classication
Part 0 Initialization
clear ; close all; clc; 常規操作。
Part 1: Email Preprocessing
使用 SVM to classify emails into Spam v.s. Non-Spam, 先把each email 轉化成 a vector of features. 然後執行 the preprocessing steps for each email. 使用 processEmail.m 函式,在詞庫中找到對應的詞的index,併產生 word indices vector。
Part 2: Feature Extraction
在已知INDEX之後,我們可以生成 a vector of features in R^n. 使用函式 emailFeatures.m 產生 a feature vector for a given email.
Part 3: Train Linear SVM for Spam Classification
linear SVM 訓練模型可以得到學得的引數。並用svmPredict函式進行測試Training Accuracy。
Part 4: Test Spam Classification
訓練完了以後, 我們可以在test set上進行評估。並輸出Test Accuracy。
Part 5: Top Predictors of Spam
選出單詞全中最高的weight。
Part 6: Try Your Own Emails
使用其他郵件進行檢測,輸出預測結果。
---------------------
作者:帥金毛
來源:CSDN
原文:https://blog.csdn.net/qq1376725255/article/details/83097471
版權宣告:本文為博主原創文章,轉載請附上博文連結!