1. 程式人生 > >Coursera-吳恩達-機器學習-第七週-程式設計作業: Support Vector Machines

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!