1. 程式人生 > >Coursera機器學習 week3 邏輯迴歸 程式設計作業程式碼

Coursera機器學習 week3 邏輯迴歸 程式設計作業程式碼

這是Coursera上 Week3 的 “邏輯迴歸” 的程式設計作業程式碼。經過測驗,全部通過。

下面是 sigmoid.m 的程式碼:

function g = sigmoid(z)
%SIGMOID Compute sigmoid functoon
%   J = SIGMOID(z) computes the sigmoid of z.

% You need to return the following variables correctly 
g = zeros(size(z));

% ====================== YOUR CODE HERE ======================
% Instructions: Compute the sigmoid of
each value of z (z can be a matrix, % vector or scalar). g = 1 ./ (1 + exp(-z)); % Ff operator './' is replaced with '/', this expression will calculate the % inverse matrix of (1 + exp(-z)). % ============================================================= end

下面是 c

ostFunction.m 的程式碼:

function [J, grad] = costFunction(theta, X, y)
%COSTFUNCTION Compute cost and gradient for logistic regression
%   J = COSTFUNCTION(theta, X, y) computes the cost of using theta as the
%   parameter for logistic regression and the gradient of the cost
%   w.r.t. to the parameters.

% Initialize some
useful values m = length(y); % number of training examples % You need to return the following variables correctly % J = 0; % grad = zeros(size(theta)); % ====================== YOUR CODE HERE ====================== % Instructions: Compute the cost of a particular choice of theta. % You should set J to the cost. % Compute the partial derivatives and set grad to the partial % derivatives of the cost w.r.t. each parameter in theta % % Note: grad should have the same dimensions as theta % J = 1 / m * sum(((-y) .* log(sigmoid(X * theta)) - (1 - y) .* log(1 - sigmoid(X * theta)))); grad = 1 / m * X' * (sigmoid(X * theta) - y); % ============================================================= end

下面是 predict.m 的程式碼:

function p = predict(theta, X)
%PREDICT Predict whether the label is 0 or 1 using learned logistic 
%regression parameters theta
%   p = PREDICT(theta, X) computes the predictions for X using a 
%   threshold at 0.5 (i.e., if sigmoid(theta'*x) >= 0.5, predict 1)

m = size(X, 1); % Number of training examples

% You need to return the following variables correctly
p = zeros(m, 1);

% ====================== YOUR CODE HERE ======================
% Instructions: Complete the following code to make predictions using
%               your learned logistic regression parameters. 
%               You should set p to a vector of 0's and 1's
%

temp = sigmoid(X * theta);
p = temp > 0.5; % If a element is positive, make it 1, or keep it 0

% =========================================================================

end

下面是 costFunctionReg.m 的程式碼:

function [J, grad] = costFunctionReg(theta, X, y, lambda)
%COSTFUNCTIONREG Compute cost and gradient for logistic regression with regularization
%   J = COSTFUNCTIONREG(theta, X, y, lambda) computes the cost of using
%   theta as the parameter for regularized logistic regression and the
%   gradient of the cost w.r.t. to the parameters. 

% Initialize some useful values
m = length(y); % number of training examples

% You need to return the following variables correctly 
% J = 0;
% grad = zeros(size(theta));

% ====================== YOUR CODE HERE ======================
% Instructions: Compute the cost of a particular choice of theta.
%               You should set J to the cost.
%               Compute the partial derivatives and set grad to the partial
%               derivatives of the cost w.r.t. each parameter in theta

[J, grad] = costFunction(theta,X,y);
J = J  + lambda / (2*m) * (sum(theta.^2) - theta(1)^2); % no need to regularize theta 1
grad = grad + lambda / m * theta;
grad(1) = grad(1) - lambda / m * theta(1); % no need to regularize theta 1

% =============================================================

end

相關推薦

Coursera機器學習 week3 邏輯迴歸 程式設計作業程式碼

這是Coursera上 Week3 的 “邏輯迴歸” 的程式設計作業程式碼。經過測驗,全部通過。 下面是 sigmoid.m 的程式碼: function g = sigmoid(z) %SIG

機器學習邏輯迴歸基礎知識+程式碼實現

1. 基本概念 邏輯迴歸用於二分類,將對輸入的線性表示對映到0和1之間,輸出為label為1的概率。 優點:實現代價低,可輸出分類概率。適用於資料線性不可分。 缺點:容易欠擬合,分類精度可能不高,且僅限二分類。 使用資料型別:數值型和標稱資料。 邏輯迴歸本質也是線性迴歸,但是

機器學習邏輯迴歸與Python程式碼實現

前言:本篇博文主要介紹邏輯迴歸(logistic regression),首先介紹相關的基礎概念和原理,然後通過Python程式碼實現邏輯迴歸的二分類問題。特別強調,其中大多理論知識來源於《統計學習方法_李航》和斯坦福課程翻譯筆記以及Coursera機器學習課程。 本篇博

Andrew NG機器學習邏輯迴歸程式設計作業

Exercise 2:Logistic Regression—實現一個邏輯迴歸 問題描述:用邏輯迴歸根據學生的考試成績來判斷該學生是否可以入學。 這裡的訓練資料(training instance)是學生的兩次考試成績,以及TA是否能夠入學的決定(y=0表示

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

本次文章內容: Coursera吳恩達機器學習課程,第七週程式設計作業。程式語言是Matlab。 本文只是從程式碼結構上做的小筆記,更復雜的推導不在這裡。演算法分兩部分進行理解,第一部分是根據code對演算法進行綜述,第二部分是程式碼。 本次作業分兩個part,第一個是using SVM,第

Coursera-吳恩達-機器學習-第九周-程式設計作業-Anomaly Detection and Recommender Systems

本次文章內容: Coursera吳恩達機器學習課程,第九周程式設計作業。程式語言是Matlab。 本文只是從程式碼結構上做的小筆記。   Anomaly Detection  part 0 Initialization Part 1: Load Example

Coursera-吳恩達-機器學習-第八週-程式設計作業: K-Means Clustering and PCA

本次文章內容: Coursera吳恩達機器學習課程,第八週程式設計作業。程式語言是Matlab。 本文只是從程式碼結構上做的小筆記,更復雜的推導不在這裡。演算法分兩部分進行理解,第一部分是根據code對演算法進行綜述,第二部分是程式碼。 本次作業分兩個part,第一個是K-Means Clu

Coursera-吳恩達-機器學習-第六週-程式設計作業: Regularized Linear Regression and Bias/Variance

本次文章內容: Coursera吳恩達機器學習課程,第六週程式設計作業。程式語言是Matlab。 學習演算法分兩部分進行理解,第一部分是根據code對演算法進行綜述,第二部分是程式碼。 0 Introduction  在這個練習中,應用regularized linea

Coursera-吳恩達-機器學習-第五週-程式設計作業: Neural Networks Learning

本次文章內容: Coursera吳恩達機器學習課程,第五週程式設計作業。程式語言是Matlab。 學習演算法分兩部分進行理解,第一部分是根據code對演算法進行綜述,第二部分是程式碼。 0 Introduction  在這個練習中,將應用 backpropagation

機器學習 | 吳恩達機器學習第三週程式設計作業(Python版)

實驗指導書  下載密碼:fja4 本篇部落格主要講解,吳恩達機器學習第三週的程式設計作業,作業內容主要是利用邏輯迴歸演算法(正則化)進行二分類。實驗的原始版本是用Matlab實現的,本篇部落格主要用Python來實現。   目錄 1.實驗包含的檔案 2.使用邏

機器學習 | 吳恩達機器學習第八週程式設計作業(Python版)

實驗指導書   下載密碼:higl 本篇部落格主要講解,吳恩達機器學習第八週的程式設計作業,主要包含KMeans實驗和PCA實驗兩部分。原始實驗使用Matlab實現,本篇部落格提供Python版本。 目錄 1.實驗包含的檔案 2.KMeans實驗 3.K-me

機器學習 | 吳恩達機器學習第七週程式設計作業(Python版)

實驗指導書  下載密碼:a15g 本篇部落格主要講解,吳恩達機器學習第七週的程式設計作業,包含兩個實驗,一是線性svm和帶有高斯核函式的svm的基本使用;二是利用svm進行垃圾郵件分類。原始實驗使用Matlab實現,本篇部落格提供Python版本。   目錄 1.

機器學習 | 吳恩達機器學習第六週程式設計作業(Python版)

實驗指導書  下載密碼:4t4y 本篇部落格主要講解,吳恩達機器學習第六週的程式設計作業,作業內容主要是實現一個正則化的線性迴歸演算法,涉及本週講的模型選擇問題,繪製學習曲線判斷高偏差/高方差問題。原始實驗使用Matlab實現,本篇部落格提供Python版本。 目錄 1.實驗包

吳恩達機器學習邏輯迴歸理論部分

一.特徵函式 對應分類問題,我們先針對二分類問題進行討論,對應計算機而言,分類即將資料按其特徵值不同分為不同的集合,僅對應二分類問題,我們只需考慮分為:正類和負類,為此我們引入特徵函式。 y=1 — 代表二分類中的正類 y=0 — 代表二分類中的反類 這是特殊函式

機器學習演算法——邏輯迴歸詳解

簡介 邏輯迴歸(Logistic Regression)既是迴歸演算法,也是分類演算法。通常情況下用於解決分類問題。 之前線性迴歸中,迴歸函式 y = Wx + b 中,y實際上就是我們要預測的值,如房價的價格預測。 而線上性迴歸中,我們實際要求的函式為 p =

機器學習邏輯迴歸詳細推導

如今機器學習、深度學習可謂炙手可熱,人工智慧也確實開始影響、改變著我們的生活。正因如此,很多同學開始接觸或者學習這方面的知識。機器學習的入門是有難度的,因為它不僅要求你會編碼,還要你熟悉高等數學,比如線性代數,微積分等,除此之外,還要懂統計學。如果你想入門機器學習,那麼一定要好好學習邏輯迴歸。原因如

機器學習---演算法---邏輯迴歸

轉自:https://blog.csdn.net/ustbbsy/article/details/80423294 1 引言    最近做一個專案,準備用邏輯迴歸來把資料壓縮到[-1,1],但最後的預測卻是和標籤類似(或者一樣)的預測。也就是說它的predict的結果

從零開始機器學習003-邏輯迴歸演算法

老師的課程 1.從零開始進行機器學習 2.機器學習數學基礎(根據學生需求不斷更新) 3.機器學習Python基礎 4.最適合程式設計師的方式學習TensorFlow 問:邏輯迴歸是解決迴歸的問題嗎? 答:不是,邏輯迴歸解決的是分類問題。 一、邏輯迴歸概念

吳恩達Coursera深度學習課程 DeepLearning.ai 程式設計作業——Regularization(2-1.2)

如果資料集沒有很大,同時在訓練集上又擬合得很好,但是在測試集的效果卻不是很好,這時候就要使用正則化來使得其擬合能力不會那麼強。 import numpy as np import sklearn import matplotlib.pyplot as plt

Coursera吳恩達機器學習課程 總結筆記及作業程式碼——第5周神經網路續

Neural Networks:Learning 上週的課程學習了神經網路正向傳播演算法,這周的課程主要在於神經網路的反向更新過程。 1.1 Cost function 我們先回憶一下邏輯迴歸的價值函式 J(θ)=1m[∑mi=1y(i)log(hθ