一、线性回归
当训练集中每个训练样本的属性有多个时(x有多列),使用梯度下降算法进行拟合数据,此时用到X矩阵与theta向量相乘作为sigmoid函数的参数
二、实现线性回归
导入两种数据包,由于多个特征的数值相差较大,需要收敛时间较长,且容易出现震荡,故将data数据集中的数据进行特征缩放(均质化归一)
path = "E:\\pyCharm\\workspace\\ex1_Andrew\\ex2data2.txt"
data = pd.read_csv(path,header=None,names=['Size','Bedrooms','Price'])
data = (data-data.mean())/data.std() #均值化归一操作,mean()函数对所有的值求平均值,std()函数为标准差
print(data.head())
初始化X,y,theta三个变量,之后需要将X,y更变为matrix矩阵才可以用于相乘,数据集不可以直接相乘,theta也初始化为全0的矩阵
data.insert(0,'ones',1) #在表中最前边加一列,值全为1;在进行特征缩放(均值化归一)之后再加头列用于theta0相乘
cols = data.shape[1