目录
一、单特征建模
1.数据处理
1.数据集分类
1.从路径导入数据集
2.将数据集分为训练集和验证集
3.再根据训练集和验证集中特征的名字,对数据进行存储
4. 画出分好的数据集,观察有无问题
2.归一化处理(均值是为了让数据在原点对称,标准差是为了让数据映射到-1到1之间,有利于计算。
2.训练
1.设置迭代次数,学习率
2.利用梯度下降法进行迭代(开始进入for循环)
1.统计样本总量。
2.根据初始化的θ得到预测值,再减去真实值,得到误差。
3.计算θ,采用小批量梯度下降法,批量梯度下降法和随机梯度下降法等(此处用小批量梯度下降法)
式中,θ是需要学习的参数,α是学习率,m是样本总数,h(x)是预测值,y是真实值,x是样本
4.用更新后的θ值,重复步骤2,步骤3
5.迭代次数结束后输出结果,θ,loss value
补充:再步骤3计算θ的同时,也再计算损失函数(自己定义),每次迭代的损失函数都要存储,最后输出迭代结果,有疑惑的一点是,之前一直以为损失函数是作为目标函数用梯度下降法求解,但这里只需要预测值和真实值的差值即可,而损失函数是两者差值的另一种表现形式,只是用来显示训练的效果。
3.可视化输出
定义:根据最后的参数,合理选定一些输入值,得到预测线(二维),面(三维) 。
二、plotly
定义:python的可交互式可视化库
使用:从GitHub打开plotly找到相应案例复制到自己代码中,改动后使用,能省事就不要费事。
三、多特征建模(2维)
区别(单特征):步骤和(一)一样,只是多了一组特征,视频中单特征和多特征都是直接条用linear_regression = LinearRegression(x_train,y_train);其中x_train是输入,是1维也能是多维,这个侯旭需要加深理解。
四、非线性建模
定义:利用一些函数,增加输入特征的多样性,进行非线性拟合
解释:从代码上看,线性特征建模,polynomial_degree = 0,sinusoid_degree=0,在视频程序中经过以下两项处理后,输入特征变成152维。
polynomial_degree = 15 # 多项式处理,对特征进行多样化处理
sinusoid_degree = 15 # 对特征进行sin非线性变换
最后:代码找参考文献的视频up主(免费,很全)