吳恩達機器學習程式設計作業python版 第一次作業

2021-10-04 18:21:29 字數 2240 閱讀 7394

我正在努力用python實現吳恩達的機器學習程式設計作業。由於時間關係,我大概會只實現最重要的部分,不會實現全部內容。如果有錯誤,希望可以及時糾正我,謝謝大家。

首先,匯入要用到的庫:numpy,matplotlib。

import numpy as np

import matplotlib.pyplot as plt

接下來,匯入作業裡的資料檔案:ex1data1.txt。匯入檔案之後,做相應處理,分為向量x和y。

file

='/users/christine/desktop/吳恩達作業/ex1data1.txt'

;digits=np.loadtxt(

file

,delimiter=

',')

x=digits[:,

0];y=digits[:,

1];

獲取x向量的行數,也就是資料的組數。

m=x.shape[0]

;

接下來給x向量的前面新增一列全為1的列,這是因為我們最終求出來的用於擬合的直線有兩個引數,類似y=k*x+b的形式,所以可以看作y=k*x1+b*x2,其中x2=1。

temp=np.ones(

(m),dtype=

'float');

x=np.vstack(

(temp,x));

x=x.t;

定義以下引數:

theta:二維向量,其中的兩個分量表示直線的兩個引數(即k和b),不過在吳恩達的教程裡,是用theta表示的,那我也定義成theta好了。

alpha:學習率,在作業本中吳恩達已經給我們選好了,是0.01。

iterations:迭代次數,這個也給我們設定好了。

h:和x維度相同的向量,表示用當前引數求出的y的估計值。

注意一點的是,theta不要初始化為int型別陣列,否則將無法得到正確答案。

theta=np.array(

[0.0

,0.0])

;alpha=

0.01

;iterations=

1500

;h=np.zeros(m)

;

接下來是迭代的過程。在我這裡出現了乙個問題,就是我每次輸出損失函式的值的時候,都大約是在4.8左右,但是吳恩達的作業裡寫,最終會得到乙個32.07的值,我目前還不太清楚我的錯誤的地方。但是我的程式也可以擬合出看起來正確的影象,我也暫時不追究了,希望看到這裡的讀者能幫幫我tat

for i in

range(1

,iterations)

: h=x.dot(theta)

;for k in

range(0

,2):

sum=0;

for j in

range(0

,m):

sum+=

(h[j]

-y[j]

)*x[j,k]

; theta[k]

=theta[k]

-alpha*

sum/m;

j=0;

for j in

range(0

,m):

j=j+

(h[j]

-y[j])*

(h[j]

-y[j]);

j=j/(2

*m);

print

(j);

然後尋找兩個點,求出這兩個點在擬合出的直線上的函式值。

x0=

5;y0=theta[0]

+x0*theta[1]

;x1=

24;y1=theta[0]

+x1*theta[1]

;

最後畫出函式影象,大功告成。由於時間原因,關於j的函式影象我就先不畫了。

plt.xlabel(

'population of city in 10000s');

plt.ylabel(

'profit in $10000s');

plt.plot(

(x0,x1)

,(y0,y1));

plt.plot(digits[:,

0],y,"ob"

);

吳恩達機器學習 程式設計練習7

本練習的主題是k means clustering and principal component analysis,即k均值聚類演算法和主要成分分析。因此這篇文章也分兩部分來討論,根據作業檔案的步驟來分別對k均值聚類演算法和pca進行討論原理以及如何實現。k means clustering al...

吳恩達機器學習 程式設計練習8

假設特徵服從正態分佈,通過計算整體概率判斷是否小於某個值,從而判斷是不是正常的。estimategaussian.m estimate parameters mu sum x m m add zeros n 1,n mu tmp mu m add mu tmp ones m,n mu tmp sig...

吳恩達機器學習筆記

為了解決實際生活中的問題,我們通常需要乙個數學模型。比如,小明有乙個房子 他想賣掉房子 為了知道房子的 小明收集了該地區近兩年的房屋交易 他發現房屋 與房屋大小呈正相關,所以他畫了了一幅圖 小明的房屋大小用紅色的 代替。可見和小明房屋一樣大小的房子並不存在,而類似的房屋 又有很大差別,如此小明決定用...