1. 程式人生 > >AndrewNg機器學習第四周作業:關於使用邏輯迴歸、神經網路訓練資料並應用之的心得

AndrewNg機器學習第四周作業:關於使用邏輯迴歸、神經網路訓練資料並應用之的心得

ex3的作業是根據已有的資料集

(20*20畫素的圖片,每個畫素是一個feature,總共400個features,400個features作為輸入X,資料集已經包含輸出的y,代表這是什麼數字)

,去識別手寫數字。

首先是使用邏輯迴歸方法來分類10個數字(分類問題)。

一、邏輯迴歸 引數theta的訓練與預測

一開始的theta矩陣是ones建立的,構建邏輯迴歸的cost Function和gradient,然後把資料集X和已知結果y扔到裡面去訓練(這個“訓練”過程實際就是一種代數運算),求出我們的theta(維度:10*401),這裡需要講一下為什麼維度是10*401,

我們要識別的數字是10個,然後輸入的features是400個,為甚麼後來變成了401呢,因為多了一個theta0,所以是401。
然後因為我們是分別對10個數字做邏輯迴歸,theta的每一行代表對應這個數字我們的theta引數值
通俗來講,就是,我們想象出一個401維的座標軸,然後裡面有1000個標記點(分別代表1到10這些數字),然後我們現在要構建一個超級複雜的函式hx1(擁有400個引數)來將代筆1這個數字的標記點包起來(不一定要完美無缺的包起來),同理,我們還要找到hx2、hx3····來把其他數字標記點包起來,所以這樣就構成了我們的theta矩陣。

那麼,我們的theta矩陣訓練完之後我們要怎麼去預測一個新資料集呢?

現在給出一個新的資料集X2(1000*401)然後把這個X2*(theta的轉置)矩陣相乘之後 帶入邏輯函式中(即S型函式)後得到一個 矩陣B(1000*10),矩陣B的每一行代表 資料集X2對應的那一行資料輸入的結果預測,矩陣B第一行第一列的數值代表X2第一行輸入的features經過運算後邏輯迴歸判斷是數字1的可能性,之後以此類推,我們記錄矩陣B中每一行最大的數值所在的列,即得出了我們預測的數字。

二、神經網路 引數theta的訓練與預測

神經網路與邏輯迴歸的處理方式基本一樣,只不過theta矩陣 視 神經網路的層數和每層的神經元個數不同~~
附上神經網路預測的程式碼:

function p = predict(Theta1, Theta2, X)
%PREDICT Predict the label of an input given a trained neural network
%   p = PREDICT(Theta1, Theta2, X) outputs the predicted label of X given the
%   trained weights of a neural network (Theta1, Theta2)

% Useful values
m = size(X, 1);
num_labels = size(Theta2, 1
); % You need to return the following variables correctly p = zeros(size(X, 1), 1); % ====================== YOUR CODE HERE ====================== % Instructions: Complete the following code to make predictions using % your learned neural network. You should set p to a % vector containing labels between 1 to num_labels. % % Hint: The max function might come in useful. In particular, the max % function can also return the index of the max element, for more % information see 'help max'. If your examples are in rows, then, you % can use max(A, [], 2) to obtain the max for each row. % a1=[ones(m,1) X]; z2=Theta1*a1'; a2=[ones(1,m);sigmoid(z2)]; z3=Theta2*a2; output=z3'; [c,i]=max(output,[],2); p=i; % ========================================================================= end

相關推薦

AndrewNg機器學習四周作業關於使用邏輯迴歸神經網路訓練資料應用心得

ex3的作業是根據已有的資料集 (20*20畫素的圖片,每個畫素是一個feature,總共400個features,400個features作為輸入X,資料集已經包含輸出的y,代表這是什麼數字) ,去識別手寫數字。 首先是使用邏輯迴歸方法來分類10

Stanford機器學習 三週邏輯迴歸與正則化

一、邏輯迴歸 1.1 分類問題 判斷一封電子郵件是否是垃圾郵件;判斷一次金融交易是否是欺詐;判斷腫瘤是惡性的還是良性的等屬於分類問題。 Eg:預測病人的腫瘤是惡性(malignant)還是良性(benign),用線性迴歸的方法擬合一條直線如圖 當hθ大於等於0.5時,預測 y

吳恩達機器學習第一次作業線性迴歸

0.綜述      給出房價與房屋面積的關係,利用梯度下降的方法進行資料擬合,並對給定的房屋面積做出對房價的預測。 1.warmUpExercise       輸出5*5的單位矩陣 function A = warmUpExercise() %WARMUPEXE

機器學習 | 吳恩達機器學習四周程式設計作業(Python版本)

實驗指導書       下載密碼:u8dl 本篇部落格主要講解,吳恩達機器學習第四周的程式設計作業,作業內容主要是對手寫數字進行識別,是一個十分類問題,要求使用兩種不同的方法實現:一是用之前講過的邏輯迴歸實現手寫數字識別,二是用本週講的神經網路實現手寫數字

吳恩達 機器學習 四周程式設計作業

lrCostFunction function [J, grad] = lrCostFunction(theta, X, y, lambda) %LRCOSTFUNCTION Compute cost and gradient for logistic regression with %reg

機器學習7天深入瞭解邏輯迴歸

一、邏輯迴歸是什麼 簡單來說, 邏輯迴歸(Logistic Regression)是一種用於解決二分類(0 or 1)問題的機器學習方法,用於估計某種事物的可能性。比如某使用者購買某商品的可能性,某病人患有某種疾病的可能性,以及某廣告被使用者點選的可能性等。

機器學習筆記 6課邏輯迴歸演算法

邏輯迴歸是機器學習從統計領域借用的又一項技術。它是二元分類問題(即只有兩種型別的分類問題)的首選方法。 邏輯迴歸和線性迴歸的類似之處在於,其目標是找到每個輸入變數的權重係數。 與線性迴歸的不同點是,邏輯函式是非線性函式,邏輯迴歸使用非線性的邏輯函式對輸出結果進行轉換。

機器學習筆記 -吳恩達(七章邏輯迴歸,python實現 附原始碼)

(1)邏輯迴歸概念 1. 迴歸(Regression) 迴歸,我的理解來說,其直觀的理解就是擬合的意思。我們以線性迴歸為例子,在二維平面上有一系列紅色的點,我們想用一條直線來儘量擬合這些紅色的點,這就是線性迴歸。迴歸的本質就是我們的預測結果儘量貼近實際觀測的結果,或者說我們

機器學習筆記 -吳恩達(七章邏輯迴歸-手寫數字識別,python實現 附原始碼)

(1)資料集描述 使用邏輯迴歸來識別手寫數字(0到9)。 將我們之前的邏輯迴歸的實現,擴充套件到多分類的實現。 資料集是MATLAB的本機格式,要載入它到Python,我們需要使用一個SciPy工具。影象在martix X中表示為400維向量(其中有5,000個), 400

機器學習三練為慈善機構尋找捐助者

alt earch .get 變量 照相 標簽 log 比較 random 這個任務同樣是在Jupyter Notebook中完成, 項目目的是通過前面的所有特征列,當然去掉序號列,然後預測最後一列,收入‘income‘,究竟是大於50K,還是小於等於50K. 第一

機器學習 | 吳恩達機器學習四周學習筆記

課程視訊連結 第四周課件       下載密碼:kx0q 上一篇部落格主要介紹了第三週的課程的內容,主要講解分類問題,引入了邏輯迴歸模型來解決分類問題,並詳細的介紹了邏輯迴歸模型的細節,包括假設函式,代價函式,優化求解方法包括之前學習的梯度下降法和更高

斯坦福大學(吳恩達) 機器學習課後習題詳解 四周 程式設計題 多分類和神經網路

作業下載地址:https://download.csdn.net/download/wwangfabei1989/103008901. 邏輯迴歸代價函式 lrCostFuctionfunction [J, grad] = lrCostFunction(theta, X, y,

機器學習四周

神經網路 模型表示1 先來看看大腦裡面神經元結構圖,如下圖: 會發現神經元的中心部分就相當於我們的 h(x),神經元的“樹突”等效於 input 端的輸入特徵 xn,“軸突”等效於 output。 再來看看前面講了兩種模型:線性迴歸模型跟邏輯迴歸

機器學習 6篇線性模型概述

在迴歸分析中,線性模型的一般預測公式是: 是預測值,讀作"y hat",是特徵的線性組合,把向量w稱作 coef_(係數),公式是:    把w0稱作intercept_(截距),這兩個屬性是線性模型的共有屬性。 一,線性迴歸 最基本的線性模型是線性迴歸,也稱作最小二乘法(OL

機器學習 2篇資料預處理(缺失值)

在真實的世界中,缺失資料是經常出現的,並可能對分析的結果造成影響。我們需要了解資料缺失的原因和資料缺失的型別,並從資料中識別缺失值,探索資料缺失的模式,進而處理缺失的資料。本文概述處理資料缺失的方法。 一,資料缺失的原因 首先我們應該知道:資料為什麼缺失?資料的缺失是我們無法避免的,可能的原因有很多種,博主總

機器學習 3篇資料預處理(使用插補法處理缺失值)

插補法可以在一定程度上減少偏差,常用的插補法是熱卡插補、擬合插補和多重插補。擬合插補,要求變數間存在強的相關性;多重插補(MCMC法),是在高缺失率下的首選插補方法,優點是考慮了缺失值的不確定性。 一,熱卡插補 熱卡填充(Hot deck imputation)也叫就近補齊,對於一個包含空值的物件,熱卡填充法

機器學習 4篇資料預處理(sklearn 插補缺失值)

由於各種原因,現實世界中的許多資料集都包含缺失值,通常把缺失值編碼為空白,NaN或其他佔位符。但是,此類資料集與scikit-learn估計器不相容,這是因為scikit-learn的估計器假定陣列中的所有值都是數字,並且都存在有價值的含義。如果必須使用不完整資料集,那麼處理缺失資料的基本策略是丟棄包含缺失值

斯坦福CS229機器學習課程筆記一線性迴歸與梯度下降演算法

機器學習三要素 機器學習的三要素為:模型、策略、演算法。 模型:就是所要學習的條件概率分佈或決策函式。線性迴歸模型 策略:按照什麼樣的準則學習或選擇最優的模型。最小化均方誤差,即所謂的 least-squares(在spss裡線性迴歸對應的模組就叫OLS即Ordinary Least Squares):

機器學習實戰(四)邏輯迴歸LR(Logistic Regression)

目錄 0. 前言 1. Sigmoid 函式 2. 梯度上升與梯度下降 3. 梯度下降法(Gradient descent) 4. 梯度上升法(Gradient ascent) 5. 梯度下降/上升法的數學推導

【原】Andrew Ng斯坦福機器學習 Coursera—Programming Exercise 3 邏輯迴歸多分類和神經網路

作業說明 Exercise 3,Week 4,使用Octave實現手寫數字0-9的識別,採用兩種方式(1)邏輯迴歸多分類(2)三層神經網路多分類。對比結果。 每張圖片20px * 20px,也就是一共400個特徵(因為Octave裡從1開始。所以將0對映為10) (1)邏輯迴歸多分類:實現 lrCost