免费Python机器学习课程一:线性回归算法

学习线性回归的概念并从头开始在python中开发完整的线性回归算法

最基本的机器学习算法必须是具有单个变量的线性回归算法。如今,可用的高级机器学习算法,库和技术如此之多,以至于线性回归似乎并不重要。但是,学习基础知识总是一个好主意。这样,您将非常清楚地理解这些概念。在本文中,我将逐步解释线性回归算法。

想法和公式

线性回归使用非常基本的预测思想。公式如下:

Y = C + BX

我们在学校都学过这个公式。提醒您,这是一条直线方程。在此,Y是因变量,B是斜率,C是截距。通常,对于线性回归,它写为:

在这里,' h'是假设或预测的因变量,X是输入特征,theta0和theta1是系数。Theta值从头开始随机初始化。然后使用梯度下降,我们将更新theta值以最小化成本函数。这是成本函数和梯度下降的解释。

成本函数和梯度下降

成本函数确定预测与原始因变量的距离。这是公式

任何机器学习算法的想法都是最小化成本函数,以使假设接近于原始因变量。为此,我们需要优化theta值。如果我们分别基于theta0和theta1取成本函数的偏导数,则会得到梯度下降。要更新theta值,我们需要从相应的theta值中减去梯度下降:

经过偏导数后,以上公式将变为:

此处,m是训练数据的数量,而alpha是学习率。我正在谈论一种变量线性回归。这就是为什么我只有两个theta值的原因。如果有很多变量,则每个变量都有theta值。

工作实例

我将要使用的数据集来自安德鲁·伍(Andrew Ng)的Coursera机器学习课程。这是在Python中逐步实现线性回归的过程。

· 导入包和数据集。

import numpy as npimport pandas as pddf = pd.read_csv('ex1data1.txt', header = None)df.head()

在此数据集中,列零是输入要素,列1是输出变量或因变量。我们将使用列0使用上面的直线公式预测列1。

2.将第1列与第0列相对应。

输入变量和输出变量之间的关系是线性的。当关系为线性时,线性回归效果最佳。

3.初始化theta值。我正在将theta值初始化为零。但是任何其他值也应该起作用。

theta = [0,0]

4.根据前面讨论的公式定义假设和成本函数。

def hypothesis(theta, X): return theta[0] + theta[1]*Xdef cost_calc(theta, X, y): return (1/2*m) * np.sum((hypothesis(theta, X) - y)**2)

5.计算训练数据的数量作为DataFrame的长度。然后定义梯度下降函数。在此函数中,我们将更新theta值,直到cost函数达到最小值为止。可能需要任何数量的迭代。在每次迭代中,它将更新theta值,并使用每个更新的theta值来计算成本以跟踪成本。

m = len(df)def gradient_descent(theta, X, y, epoch, alpha):    cost = []    i = 0    while i < epoch:        hx = hypothesis(theta, X)        theta[0] -= alpha*(sum(hx-y)/m)        theta[1] -= (alpha * np.sum((hx - y) * X))/m        cost.append(cost_calc(theta, X, y))        i += 1    return theta, cost

6.最后,定义预测函数。它将从梯度下降函数获得更新的theta并预测假设或预测的输出变量。

def predict(theta, X, y, epoch, alpha): theta, cost = gradient_descent(theta, X, y, epoch, alpha) return hypothesis(theta, X), cost, theta

7.使用预测函数,找到假设,成本和更新的theta值。我选择学习率为0.01,然后将这个算法运行2000个时期或迭代。

y_predict, cost, theta = predict(theta, df[0], df[1], 2000, 0.01)

最终theta值为-3.79和1.18。

8.在同一图中绘制原始y和假设或预测y。

%matplotlib inlineimport matplotlib.pyplot as pltplt.figure()plt.scatter(df[0], df[1], label = 'Original y')plt.scatter(df[0], y_predict, label = 'predicted y')plt.legend(loc = 'upper left')plt.xlabel('input feature')plt.ylabel('Original and Predicted Output')plt.show()

假设图是公式中所预期的一条直线,并且该直线正在最佳位置通过。

9.记住,我们在每次迭代中都跟踪成本函数。让我们绘制成本函数。

plt.figure()plt.scatter(range(0, len(cost)), cost)plt.show()

如前所述,我们的目的是优化theta值以最小化成本。从该图可以看出,成本从一开始就急剧下降,然后稳定下来。这意味着theta值已按照我们的预期正确优化。

我希望这可以帮到你。这是本文中使用的数据集的链接:https://github.com/rashida048/Machine-Learning-With-Python/blob/master/ex1data1.txt

(本文由闻数起舞翻译自Rashida Nasrin Sucky的文章《Linear Regression Algorithm from Scratch in Python: Step by Step》,转载请注明出处,原文链接:https://towardsdatascience.com/basic-linear-regression-algorithm-in-python-for-beginners-c519a808b5f8)

(0)

相关推荐

  • 【NLP机器学习基础】从线性回归和Logistic回归开始

    古语常云:"大道至简",万事万物纷繁复杂,最终却归至几个最简单的道理.我常常在想,如今很火的AI领域是否也是如此.将AI真正学懂学会的过程就像一场遥不可及的漫长攀登,起始于晦涩难懂 ...

  • 从零开始,用Python徒手写线性回归

    关键时间,第一时间送达! 转自:机器之心 先放下 Scikit-learn,我们来看一看真正的技术. 对于大多数数据科学家而言,线性回归方法是他们进行统计学建模和预测分析任务的起点.这种方法已经存在了 ...

  • Python中的Lasso回归之最小角算法LARS

    原文链接:http://tecdat.cn/?p=20379 假设我们期望因变量由潜在协变量子集的线性组合确定.然后,LARS算法提供了一种方法,可用于估计要包含的变量及其系数.  LARS解决方案没 ...

  • 免费Python机器学习课程八:精确度,召回率

    > Photo by James Lee on Unsplash 完全了精确度,召回率和F分数概念 如何处理机器学习中偏斜的数据集 用偏斜的数据集开发有效的机器学习算法可能很棘手.例如,数据集涉 ...

  • Python机器学习算法:线性回归

    https://m.toutiao.com/is/JTpGVoD/ 线性回归可能是最常见的算法之一,线性回归是机器学习实践者必须知道的.这通常是初学者第一次接触的机器学习算法,了解它的操作方式对于更好 ...

  • 详解线性回归算法的纯Python实现

    黄佳 简说Python 1周前 来源|天池大数据科研平台 作者|黄佳 零基础学机器学习--一文详解线性回归算法的纯Python实现 ❝ 本文作者:黄佳,新加坡埃森哲公司高级顾问,人工智能专家,机器学习 ...

  • 【机器学习】异常检测算法速览(Python代码)

    正文共: 8636字 8图 预计阅读时间: 22分钟 一.异常检测简介 异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点.异常值检测等等. 1.1 异常检测适用的场景 异常检 ...

  • TF之LiR:基于tensorflow实现机器学习之线性回归算法

    TF之LiR:基于tensorflow实现机器学习之线性回归算法 输出结果 代码设计 # -*- coding: utf-8 -*- #TF之LiR:基于tensorflow实现机器学习之线性回归算法 ...

  • ML之LiR:机器学习经典算法之线性回归算法LiR的简介、使用方法、经典案例之详细攻略

    ML之MLiR:利用多元线性回归法,从大量数据(csv文件)中提取五个因变量(输入运输任务总里程数.运输次数.三种不同的车型,预测需要花费的小时数)来预测一个自变量 输出结果 代码设计 from nu ...

  • 告别积碳放大招!! “结焦”的预防(课程一)

    天下文章一大抄,大虎悠怒怼偏不抄!近期不少车主都联系大虎悠,询问各种车辆保养问题,基本上,机油.机滤.轮胎.轮毂相关问题是最主流最常见的.其中就有不少车主对油耗和积碳话题感兴趣. @ 来自车友的提问 ...

  • 机器学习中的最优化算法总结

    导言 对于几乎所有机器学习算法,无论是有监督学习.无监督学习,还是强化学习,最后一般都归结为求解最优化问题.因此,最优化方法在机器学习算法的推导与实现中占据中心地位.在这篇文章中,小编将对机器学习中所 ...

  • 80页笔记看遍机器学习基本概念、算法、模型,帮新手少走弯路

    来源:机器之心 本文约1000字,建议阅读6分钟. 这份学习笔记帮你及时回顾机器学习概念,带你快速上手. [ 导读 ]目前有关机器学习的资料可谓层出不穷,其中既有书籍.课程视频资料,也有很多算法模型的 ...