-
temp=dataset.iloc[:,2:5]
讀取數(shù)據(jù)方法——定義了一個函數(shù) iloc()
temp = dataset.iloc[:,2:5]
把X讀出來
temp['x0']=1
偏移
X=temp.iloc[:,[3,0,1,2]]
顯示順序? 第3列? 第0列? 第1列? 第2列
查看全部 -
回歸分析實戰(zhàn)
import numpy as np
from numpy.linalg import inv
from numpy import dot
from numpy import mat
import pandas as pd;
查看全部 -
同步更新
for i in range(10000):
? ? temp[0]=theta[0] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
? ? temp[1]=theta[1] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
? ? temp[2]=theta[2] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
? ? temp[3]=theta[3] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0
? ? theta=temp
查看全部 -
梯度下降:
查看全部 -
直接計算公式存在的問題
查看全部 -
最小二乘模型
查看全部 -
課程安排:
查看全部 -
掌握python梯度下降求解線性分析模型參數(shù)
θ=theta
alpha是學(xué)習(xí)速率[0,1]——
????????//保證梯度下降的速率不要太快,在一個合適的區(qū)間之內(nèi),是函數(shù)迅速收斂,找到局部最小值
theta=theta-alpha(theta * X - Y)*X
np.sum()/組數(shù)——加權(quán)平均
>>> import numpy as np
>>> from numpy.linalg import inv
>>> from numpy import dot
>>> from numpy import mat
>>> X=mat([1,2,3]).reshape(3,1)
>>> Y=2*X
>>> theta=1.0
>>> alpha=0.1
>>> for i in range(100):
...? ? ?theta=theta + np.sum(alpha*(Y-dot(X,theta))*X.reshape(1,3))/3.0
...
>>> print(theta)
2.0
>>>
查看全部 -
inv: 矩陣求逆
dot: 矩陣點乘
mat: 二維矩陣
array: 一維數(shù)組
.T: ?矩陣的轉(zhuǎn)置
.reshape : 重新構(gòu)置矩陣
查看全部 -
理解通過梯度下降進行參數(shù)求解過程
直接計算的問題
矩陣是否滿秩(Python矩陣運算對于不是滿秩矩陣的情況適用模糊近似處理)
運算性能
梯度下降法近似的計算,解決了直接計算的問題
查看全部 -
不滿秩或者不正定的時候,存在多個解,并不是沒有解,即解不唯一。此時選擇哪一個解作為最后模型的參數(shù)呢?一是通過既定的選擇便好來決定;二是采用梯度下降來近似。我覺得性能問題倒不是主要原因,主要原因是因為存在多個解
查看全部 -
理解向量運算進行參數(shù)求解過程
向量表示
????Y=θX,θ和X是矩陣
L=1/2(θX-Y)^T(θX-Y)
第二行為損失函數(shù)(歐幾里得距離/向量中向量空間的距離)
????????????//這個損失函數(shù)是線性的,而神經(jīng)網(wǎng)絡(luò)的損失函數(shù)是非線性的
查看全部 -
理解向量運算進行參數(shù)求解過程
向量表示
????Y=θX,θ和X是矩陣
L=1/2(θX-Y)^T(θX-Y)
第二行為損失函數(shù)(歐幾里得距離/向量中向量空間的距離)
????????????//這個損失函數(shù)是線性的,而神經(jīng)網(wǎng)絡(luò)的損失函數(shù)是非線性的
查看全部 -
線性回歸的一般化模型的數(shù)學(xué)表示
θ^0表示一維時的截距
????????????????也表示為多維時的偏移量
查看全部 -
Y =?θX
通過訓(xùn)練,得到θ的過程,就是線性回歸算法。
查看全部
舉報