多特徵值得代價函式和梯度下降法和單特徵值的差不多,唯一需要多做的一步是特徵值縮放。
下面為特徵縮放函式來標準化資料: x=
x−μs
(μ為特
徵值的均
值,s為
標準差=
方差的算
術平方根
) x=x
−μs(
μ為特徵
值的均值
,s為標
準差=方
差的算術
平方根)
def
normalization
(data):
data = np.array(data)
mean = np.mean(data, axis=0) #求每一列的均值
s = np.sqrt(np.var(data, axis=0)) #標準差
for i in np.arange(0, data.shape[0]):
data[i] = (data[i] - mean)/s
print (data[0] - mean)/s
return data
將特徵縮放後的資料整理
iters = 10000
alpha = 0.001
theta = np.zeros(3)
x = data[:, 0:2]
y = data[:, -1]
x = np.hstack((np.ones((x.shape[0], 1)), x))
梯度下降法同單特徵值的函式
theta, j = gridientsolves(theta, x, y, iters, alpha)
fig, ax = plt.subplots()
ax.plot(np.arange(1, iters+1), j)
ax.set_title('the the curve between cost value and iteration times')
plt.show()
如圖所示:
邏輯回歸 練習題
資料的前兩列為成績,第三列為是否錄取的決定。完成x和y的初始化,方便以後的函式的使用 data np.loadtxt ex2data1.txt delimiter x np.mat np.delete data,1,axis 1 x np.hstack np.ones x.shape 0 1 x y...
線性表練習題
題目 1 有序鍊錶的合併 將2個遞增的有序鍊錶合併為 乙個鍊錶的有序鍊錶 要求結果鍊錶仍然使 用兩個鍊錶的儲存空間,不不另外佔 用其他的儲存空間.表中不不允許有重複的資料。演算法思想 1 假設待合併的鍊錶為la和lb,合併後的新錶使用頭指標lc lc的表頭結點設為la的表頭結點 指向.pa 和 pb...
線性代數 21特徵值和特徵向量
這節課將講解課程中很大的主題,還是對方陣而言,討論特徵值和特徵向量,下一節課講解應用。給定矩陣 a 矩陣作用在向量上,矩陣 a 的作用就像輸入向量 x 結果得到向量 ax 就像乙個函式,微積分中的函式表示作用在數字 x 上得到 f x 矩陣就是一種變換。在這些 x 向量中,我們比較感興趣的是變換前後...