第六章习题
- ①创建一个ex1.txt文件,内容为eye(5)
②文件重命名为ex1.m,在octave中将当前路径改为文件ex1.m的路径下
③octave中输入run(‘ex1.m’)
2.单变量线性回归
假设函数:hθ(x) = θ0 + θ1x1+…+θnxn
损失函数:J(θ) = 1/2m∑(1:m)( hθ(x) - y )^2 #m为样本数量
梯度下降函数:θ = θ - (X.T@(X@θ - y))*α/m
①读取文件
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('E:\ML_exercise\ex1\ex1data1.txt',names=['population','profit'])#读取文件,添加列名
data.head()#查看前5行
data.tail()#查看后5行
data.describe()
data.info()
#画散点图
data.plot.scatter('population','profit',label='population')#绘制散点图
plt.show()
②构造数据集
data.insert(0,'ones',1)#插入第一列为1
data.head()
X = data.iloc[:,0:-1]#切片
X.head()
y = data.iloc[:,-1]
y.head()
X = X.values#转换为矩阵
X.shape#查看X的维度
y = y.values
y.shape
y = y.reshape(97,1)
y.shape
③构造损失函数
def costFunction(X,y,theta):#定义损失函数
inner = np.power(X @ theta - y,2)#矩阵相乘用@
return np.sum(inner)/(2*len(X))
theta = np.zeros((2,1))