**
**
机器学习小白入门,在看吴恩达机器学习课程的同时找到了课后的练习。开贴用于记录学习(copy)过程。
学习参考:吴恩达机器学习ex1
单变量线性回归
题目描述:在本部分的练习中,您将使用一个变量实现线性回归,以预测食品卡车的利润。假设你是一家餐馆的首席执行官,正在考虑不同的城市开设一个新的分店。该连锁店已经在各个城市拥有卡车,而且你有来自城市的利润和人口数据。
您希望使用这些数据来帮助您选择将哪个城市扩展到下一个城市。
数据集ex1data.txt见最后
**
1、导入工具包
**
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
**
2、读取数据
**
由于我是使用vitu.ai社区进行代码的编写,所以要先将数据集导入
path = 'ex1data.txt'
data = pd.read_csv(path,header=None,names=['Population','Profit'])
data.head()
**
3、数据可视化
**
data.plot(kind='scatter', x='Population', y='Profit', figsize=(12,8))
plt.show()
**
4、梯度下降
**
这个部分需要在现有数据集上,训练线性回归的参数θ。
加入一列x,用于更新θ0,然后我们将θ初始化为0,学习率初始化为0.01,迭代次数为1500次.
data.insert(0, 'Ones', 1)
4.1进行变量初始化
# 初始化X和y
cols = data.shape[1]
X = data.iloc[:,:-1]#X是data里的除最后列
y = data.iloc[:,cols-1:cols]#y是data最后一列
观察X(训练集)和y(目标变量)是否正确
X.head()#head()是观察前5行
y.head()
代价函数应该是numpy矩阵,所以我们需要转换X和Y,然后才能使用它们。 我们还需要初始化theta。
X = np.matrix(X.values)
y = np.matrix(y.values)
theta = np.matrix(np.array([0,0]))
4.2计算代价函数(θ初始值为0)
def computeCost(X, y, theta):
inner