赞
踩
任务描述
本关任务:编写一个能够载入线性回归相关数据的小程序。
编程要求
该实战内容中数据为一元数据,利用 pandas 读入数据文件,并为相应的数据附上名字标签,分别为Population
和 Profit
。
data = pd.read_csv(path, header= , names=[ ' ', ' ' ])
- if __name__ == "__main__":
- path = os.getcwd() + '/ex1data1.txt'
- #利用pandas读入数据data,并将数据属性分别命名为'Population'和'Profit'
- #********* begin *********#
- data=pd.read_csv(path,header=None,names=['Population','Profit'])
- #********* end *********#
- print(data.shape)
编程要求
根据以上公式,编写计算损失函数computeCost(X, y, theta)
,最后返回cost
。
X
:一元数据矩阵,即Population
数据;y
:目标数据,即Profit
数据;theta
:模型参数;cost
:损失函数值。测试说明
测试输入:无
测试输出:the cost is: 32.0727338775
- def computeCost(X, y, theta):
- #根据公式编写损失函数计算函数
- #********* begin *********#
- inner=np.power(((X*theta.T)-y),2)
- cost=np.sum(inner)/(2*len(X))
- cost=round(cost,10)
- #********* end *********#
- return cost
编程要求
根据以上公式,编写计算损失函数gradientDescent(X, y, theta, alpha, iters)
,最后返回theta, cost
。
x
:一元数据矩阵,即Population
数据;y
:目标数据,即Profit
数据;theta
:模型参数;m
:数据规模;α
: 学习率。测试说明
测试输入:无
测试输出:模型参数为:[[-3.241402141.1272942]]
- def gradientDescent(X, y, theta, alpha, iters):
- temp = np.matrix(np.zeros(theta.shape))
- parameters = int(theta.ravel().shape[1])
- cost = np.zeros(iters)
-
- for i in range(iters):
- error = (X * theta.T) - y
-
- for j in range(parameters):
- #********* begin *********#
- term=np.multiply(error,X[:,j])
- temp[0,j]=theta[0,j]-((alpha/len(X))*np.sum(term))
- #********* end *********#
- theta = temp
- cost[i] = computeCost(X, y, theta)
注:内容只做参考和分享,未经允许不可传播,侵权立删
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。