(1)数据描述
1,使用pandas读取数据,简化后续操作
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
path = 'ex1data1.txt'
data = pd.read_csv(path, header=None, names=['Population', 'Profit'])
data.head()
2,绘制数据,看看数据样子
data.plot(kind='scatter', x='Population', y='Profit', figsize=(12,8))
plt.show()
3,定义一个损失函数,使用梯度下降算法
def computeCost(X, y, theta):
inner = np.power(((X * theta.T) - y), 2)
return np.sum(inner) / (2 * len(X))
公式 :
4,为了使用向量进行计算,对数据做一些改造
在训练集中添加一列,以便我们可以使用向量化的解决方案来计算代价和梯度。
data.insert(0, 'Ones', 1)
cols = data.shape[1]
#特征数据集
X = data.iloc[:,0:cols-1]#X是所有行,去掉最后一列
#目标数据集
y = data.iloc[:,cols-1:cols]#X是所有行,只取最后一列
X.head()#head()是观察前5行
y.head()