首先我們要知道?(?(?))等於什麽,它的意思是θ^T乘以X,X是壹個向量,如果用等式表達的話就是 θ0?0 + θ1?1 + θ2?2+...+θ ,當然θ也是壹個向量,而且是壹維的,python裏面有壹個庫叫numpy,專門做矩陣運算的,我們使用就可以了,我們先初始化X,y,還有θ吧
先隨機初始化,這些東西應該不需要講,randint是隨機整數,rand是小數,然後low參數代表妳的隨機數上界,size就是維度,初始化完成後就開始運算。
求和公式裏面的運算
( (h(θ) = X theta^T) - y )^2*
我想這些應該不難,就是(X * theta.T - y),平方的話用np的power()函數。
inner = np.power((X * theta.T - y),2),第二個參數就是平方數
然後我們就可以計算求和公式外面的了,這個m代表著X矩陣的行數,對應的就是X的
向量個數,
np.sum(inner,axis=None)
最後再除以兩倍的x向量個數即可,就是1 / len(X) * 2為什麽是兩倍呢,因為它求了偏導數,所以就是2了,好了,把它們整理壹下寫成函數吧