机器学习最基础的算法一定是单变量的线性回归算法。今天,有太多可用的高级机器学习算法、库和技术,线性回归似乎无关紧要。但是,学习基础知识总是一个好主意。这样,您将非常清楚地理解这些概念。在本文中,我将逐步解释线性回归算法。思想和公式线性回归使用非常基本的预测思想。公式如下:Y=C+BX我们在学校都学过这个公式。请注意,这是一个直线方程。这里,Y是因变量,B是斜率,C是截距。通常,对于线性回归,它被写为:这里,“h”是假设或预测的因变量,X是输入特征,theta0和theta1是系数。Theta值是从头开始随机初始化的。然后使用梯度下降,我们将更新theta值以最小化成本函数。这是成本函数和梯度下降的解释。成本函数和梯度下降成本函数决定了预测与原始因变量的差距。这是公式任何机器学习算法的思想都是最小化一个成本函数,使得假设接近原始因变量。为此,我们需要优化theta值。如果我们分别基于theta0和theta1对代价函数求偏导数,我们得到梯度下降。要更新theta值,我们需要从相应的theta值中减去梯度下降:经过偏导后,上式变为:这里,m是训练数据的数量,alpha是学习率。我说的是可变线性回归。这就是为什么我只有两个theta值。如果有很多变量,每个变量都有一个theta值。工作示例我将使用的数据集来自AndrewNg的Coursera机器学习课程。这是Python中线性回归的分步实现。(1)导入包和数据集。importnumpyasnpiimportpandasasspddf=pd.read_csv('ex1data1.txt',header=None)df.head()在此数据集中,第0列是输入特征,第1列是输出或因变量。我们将使用第0列使用上面的直线公式预测第1列。(2)匹配第1列和第0列。输入变量和输出变量之间的关系是线性的。当关系是线性时,线性回归效果最好。(3)初始化θ值。我正在将theta值初始化为零。但任何其他值也应该有效。theta=[0,0](4)根据前面讨论的公式定义假设和成本函数。defhypothesis(theta,X):returntheta[0]+theta[1]*Xdefcost_calc(theta,X,y):return(1/2*m)*np.sum((hypothesis(theta,X)-y)**2)(5)计算训练数据的个数作为DataFrame的长度。然后定义梯度下降函数。在此函数中,我们将更新theta值,直到成本函数达到其最小值。可能需要任意数量的迭代。在每次迭代中,它将更新theta值并使用每个更新的theta值来计算成本以跟踪成本。m=len(df)defgradient_descent(theta,X,y,epoch,alpha):cost=[]i=0whilei
