-
看不懂怎么回事……查看全部
-
線性回歸算法
矩陣算法、梯度算法
查看全部 -
梯度下降法計算
查看全部 -
矩陣的操作
查看全部 -
矩陣A,B的點成:np.dot(A,B)
查看全部 -
矩陣B的逆:np.inv(B)
查看全部 -
矩陣A的轉置:A.T
查看全部 -
最小二乘法模型
查看全部 -
梯度下降函數
查看全部 -
直接運算的問題
矩陣需要滿秩
運算性能
查看全部 -
最小二乘法模型
查看全部 -
線性回歸的數學表示
查看全部 -
θ=theta
alpha是學習速率[0,1]——
????????//保證梯度下降的速率不要太快,在一個合適的區間之內,是函數迅速收斂,找到局部最小值
theta=theta-alpha(theta * X - Y)*X
np.sum()/組數——加權平均
import?numpy?as?np from?numpy.linalg?import?inv from?numpy?import?dot from?numpy?import?mat if?__name__?==?"__main__": ????#?訓練數據 ????x?=?mat([1,?2,?3]).reshape(3,?1)??#?1行3列轉化為3行1列 ????y?=?2?*?x ????#梯度下降: ????#?原理:多次更新theta的值,通過theta與x,y的關系來得到theta ????#?theta?=?theta?-?alpha*(theta*x-y)*x??(alpha取值為0到1,保證梯度下降的變化速率不要太快,在一個合適的區間之內,使得函數迅速收斂,找到局部最小值) ????theta?=?1.0??#初始化theta ????alpha?=?0.1??#初始化alpha ????for?i?in?range(100): ????????theta?=?theta?+?np.sum(alpha?*?(y?-?dot(x,?theta))?*?x.reshape(1,?3))/3???#?np.sum?求加權平均值 ????print(theta)
查看全部 -
import?numpy?as?np from?numpy.linalg?import?inv from?numpy?import?dot from?numpy?import?mat if?__name__?==?"__main__": ????A?=?np.mat([1,?1])??#?1行2列的矩陣 ????print('A:\n',?A) ????Arr?=?np.array([1,1])??#數組 ????print("Arr:\n",Arr) ????#A矩陣是1*2轉化為2*1 ????print("A矩陣轉化2行1列:",?A.reshape(2,?1)) ????#?A矩陣轉置 ????print('A.T:\n',?A.T)??#?1行2列?轉置為?2行1列 ????print("-------------------------") ????B?=?mat([[1,2],[2,3]])??#2*2的矩陣 ????print('B:\n',B) ????#求B矩陣的逆矩陣 ????print('B的逆矩陣:\n',?inv(B)) ????#獲取B矩陣的第一行 ????print("B矩陣的第一行",B[0,?:])?#第一行所有列 ????#獲取B矩陣的第一列 ????print("B矩陣的第一列:",?B[:,?0])?#所有行第一列 ????print("B矩陣轉化為1行4列:\n",?B.reshape(1,?4)) ????#?A:?1*2?B:?2*2 ????print('A*B:\n',?dot(A,B)) ????#?A.T?2*1?B:2*2 ????print('B*A:\n',?dot(B,A.T))??#B矩陣*A的轉置矩陣
查看全部 -
梯度下降算法
查看全部 -
直接計算的問題
查看全部 -
最小二乘法模型
向量表示
????Y=θX,θ和X是矩陣
L=1/2(θX-Y)^T(θX-Y)
第二行為損失函數(歐幾里得距離/向量中向量空間的距離)
????????????//這個損失函數是線性的,而神經網絡的損失函數是非線性的
查看全部 -
線性回歸的數據表示
查看全部 -
什么是線性回歸
y~x :y與x是一對一的關系,映射到幾何上就是二維坐標系中的直線方程
Y =?θX
通過訓練,得到θ的過程,就是線性回歸算法。
其中:x是輸入,y是輸出,是結果
查看全部
舉報
0/150
提交
取消