机器学习中线性回归python编程注意事项
先把公式列在这里方便表述:我们设x0永远为1 ,用来表示 y = kx+b 中的 b因此,后面的式子就可以表述为:data.insert(0, 'Ones', 1)cols = data.shape[1]# 取前cols-1列为输入向量X = data.iloc[:,0:cols-1]# 取最后一列为目标向量y = data.iloc[:,cols-1:cols]X = np.array(X.va
先把公式列在这里方便表述:
我们设x0永远为1 ,用来表示 y = kx+b 中的 b
因此,后面的式子就可以表述为:
data.insert(0, 'Ones', 1)
cols = data.shape[1]
# 取前cols-1列为输入向量
X = data.iloc[:,0:cols-1]
# 取最后一列为目标向量
y = data.iloc[:,cols-1:cols]
X = np.array(X.values)
y = np.array(y.values)
因为python已经不推荐matrix了,所以我们就用array
注意我们在算梯度的时候:
theta - np.multiply((alpha / m) ,np.dot(np.dot(X,theta.T).reshape(1,-1) - y.T, X))
其中np.dot表示的是矩阵相乘,需要随时注意相乘以后的行和列,因为np.dot(X,theta.T)计算完后产生的是n行1列的数据,(假设相乘以后是全0)则表示为了:
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0.]
而shape是(n,)
但用于下面的计算的矩阵必须得是(n,1),所以需要reshape一下。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)