网上找的机器学习的资料对于新手来说往往很难, 经常一上来就甩你一堆像外星文一样的公式方程,然后就把你满腔的学习热情给无情浇灭, 让你觉得是不是该回去学下数学再好好做人。笔者也是一样屡屡被虐,才略有领悟, 回过头来看,发现其实机器学习入门本来可以不这么艰难。 Python机器学习快速入门系列文章,希望能够以简单易懂、通俗而有趣的方式,把大家带入Machine Learning的世界。关注微信公众号“Tunky的实用主义”, 一边学习,一边分享。
1.猜数游戏
在正式进入线性回归之前,先玩一个猜数的游戏:
x= 1 , 3, 8, 9, 15 16
y= 2, 6.3, 15, 21, ? ?
依据X和Y的关系, 我们猜x=15, y可能会对应30左右, x=16,y可能会对应32左右
但我们会什么不会猜100, 或者其他更大的数, 因为肉眼判断的Y大概是X的2倍, 虽然有点误差, 但是整体方向上应该错不了。
y=2*x
这就是一个简单的线性回归, 你找到了一个系数2, 对于任何要预测的目标值, 你用输入值乘以系数2, 得到预测的结果。
2. 升级猜数游戏
现在我们加大猜数的难度, 把x这组数据替换成二维的数组, 也就是说, x=[0.5,1] 对应y是1, 求x=[6,15] 对应的y取值
0.5 1.4 3.7 4 6 6.1
x= 1 , 3, 8, 9, 15 16
y= 2, 6.3, 15, 21, ? ?
这就是典型的线性回归问题, 我们先暂时不回答, 相信看到后面就能解答。
3. 线性回归数学定义
在点阵里面找1条直线, 计算所有点到这条直线的距离, 如果距离之和最短, 那么这条直线就是需要的结果。对于需要预测的y的值, 找到x在直线上所对应的y值, y=x * w 就是预测结果(w就是直线)
因此, 如果需要解答猜数游戏, 那么首先就要找到 w 的值。
这种场景下, 计算w的值, 前辈们已经推导出了公式:
假设x和y都是矩阵, 那么这个系数w叫做回归系数, 取值为:
w = (xT * x)-1 *xT * y
至于为什么公式是这么写的, 我们不需要操心, 就像计算圆形的面积是是( πr2 )一样不需要我们再推导一遍。
通俗翻译过来就是:(下面这段话看不懂赶紧复习系列2)
- x矩阵的转置乘以x矩阵
- 对这个新矩阵的结果取逆矩阵
- 逆矩阵再乘以x矩阵的转置
- 最后乘以y矩阵。
4. 回归系数的Python实现
这堆数学概念看起来超复杂, 但是用python来实现, so easy!
环境搭建参见系列1文章
import numpy as np
#x矩阵
xMatrix=np.mat([
[0.5, 1 ],
[1.4 3 ],
[3.7, 8 ],
[4, 9 ]
] )
#y矩阵
yMatirx=np.mat([
[2 ],
[6.3],
[15 ],
[21 ]
])
[0.5, 1 ],
[1.4 3 ],
[3.7, 8 ],
[4, 9 ]
] )
#y矩阵
yMatirx=np.mat([
[2 ],
[6.3],
[15 ],
[21 ]
])
#实现公式: 详细解释参见系列2文章
w=(xMatrix.T * xMatrix).I * (xMatrix.T * yMatrix)
5. 使用回归系统进行预测
把需要预测的值整理成矩阵
newxMatrix=np.mat([
[6, 15 ],
[6.1 16 ]
[6.1 16 ]
])
#用回归系数计算
predictYMatrix=newxMatrix * w
print predictYMatrix
得到结果: 47.71369295 , 56.79128631 就是那2个猜出来的y值
6. 绘图查看数据分布和预测结果
绘图详细介绍参见系列3文章
import matplotlib.pyplot as plt
newxMatrix=np.mat([
[0.5, 1 ],
[1.4, 3 ],
[3.7, 8 ],
[4, 9 ] ,
[6 , 15 ],
[6.1 , 16 ]
])
[0.5, 1 ],
[1.4, 3 ],
[3.7, 8 ],
[4, 9 ] ,
[6 , 15 ],
[6.1 , 16 ]
])
#红色为预测值
newyMatrix=np.mat([
[2 ],
[6.3],
[15 ],
[21 ],
[2 ],
[6.3],
[15 ],
[21 ],
[47.7 ],
[56.7 ],
[56.7 ],
])
#把newxMatrix转换成一维数组, 每个值除以该列的平均值(绘图表现方便,无其他意义)
xMeanMatrix= (newxMatrix[:,0]/newxMatrix[:,0].mean() + newxMatrix[:,1]/newxMatrix[:,1].mean())
plt.figure() #创建图表
x=xMeanMatrix[:,0].flatten().A[0]
y=newyMatrix[:,0].flatten().A[0]
plt.scatter(x,y) #画点
plt.plot(x,y) #画线
x=xMeanMatrix[:,0].flatten().A[0]
y=newyMatrix[:,0].flatten().A[0]
plt.scatter(x,y) #画点
plt.plot(x,y) #画线
(图中不是直线,是因为把二维矩阵合并成了一维来绘图了)
7. SKLearn无脑实现线性回归
sklearn是个机器学习非常好的包, 好到使用者根本不需要了解什么算法, 算法特性,公式等。 上手直接预测:
步骤:
- 输入x, y数据训练
- 输入newX, 输出预测的newY值
import sklearn
#x矩阵
xMatrix=np.mat([
[0.5, 1 ],
[1.4 3 ],
[3.7, 8 ],
[4, 9 ]
] )
#y矩阵
yMatirx=np.mat([
[2 ],
[6.3],
[15 ],
[21 ]
])
[0.5, 1 ],
[1.4 3 ],
[3.7, 8 ],
[4, 9 ]
] )
#y矩阵
yMatirx=np.mat([
[2 ],
[6.3],
[15 ],
[21 ]
])
#预测输入xp矩阵
xpMatrix=np.mat([
[6 , 15 ],
[6.1 , 16 ]
])
classifier=LinearRegression()
classifier.fit(xMatrix,yMatrix)
yPredict=classifier.predict(xpMatrix)
print yPredict
[6 , 15 ],
[6.1 , 16 ]
])
classifier=LinearRegression()
classifier.fit(xMatrix,yMatrix)
yPredict=classifier.predict(xpMatrix)
print yPredict
计算得出 51.66894737 , 62.92736842 , 虽然和我们自己实现预测的值47 和 56 有些差异, 但大方向是基本一致, 也算相互验证。
相关推荐
"零起点PYTHON机器学习快速入门"这个压缩包文件,显然是为了帮助那些对Python和机器学习感兴趣但无任何基础的人设计的教程。 首先,Python的基础知识是入门的基石。你需要了解Python的基本语法,包括变量、数据类型...
随着统计学的发展,统计学习在机器学习中占据了重要地位,支持向量机(SVM)、决策树和随机森林等算法的提出和发展,使得机器学习能够更好地处理分类、回归和聚类等任务。进入21世纪,深度学习成为机器学习领域的...
【Python机器学习基础】 Python作为机器学习的首选语言,因其简洁的语法和强大的库支持而备受推崇。在开始机器学习之旅之前,首先需要掌握Python的基础编程技能。这包括理解变量、数据类型、控制结构(如if-else,...
吴恩达传统机器学习作业代码(python jupyter):线性回归、逻辑回归、神经网络、SVM、Kmeans决策树和自动调参数 吴恩达老师的机器学习课后习题Python 包含有8个单元,附带数据集,轻松入门机器学习。 适合人工智能...
在本套"Python3天快速入门机器学习项目资料"中,你将获得一系列关于机器学习基础知识的详尽指导,特别适合初学者。机器学习是人工智能的一个分支,它使计算机能够通过经验来改善其表现,而无需显式编程。在这个快速...
在本文中,我们将深入探讨"3天入门Python机器学习"这一主题,这是一份压缩包文件,包含了关于机器学习基础知识的教程。通过这份资源,初学者可以在短短三天内建立起对机器学习的基本理解,并掌握一些核心算法的实现...
基于python实现机器学习KNN、简单线性回归、多元线性回归、基于梯度下降的PCA的源码+超详细注释.zip基于python实现机器学习KNN、简单线性回归、多元线性回归、基于梯度下降的PCA的源码+超详细注释.zip基于python实现...
"机器学习实战教程(十二):线性回归提高篇之乐高玩具套件二手价预测.pdf"和"机器学习实战教程(十一):线性回归基础篇之预测鲍鱼年龄.pdf"两部分则关注线性回归,分别讨论了线性回归的理论和实践应用,包括最小...
《黑马Python机器学习入门笔记》是一份针对初学者编写的指南,旨在帮助读者掌握Python语言在机器学习领域的基本应用。这份笔记将带你踏入这个充满无限可能的领域,通过Python这门易学且强大的编程语言,开启你的数据...
"Python 机器学习回归实例代码" 本资源为 Python 机器学习回归实例代码,旨在解决广告媒体与销售额之间的关系问题。...该实例代码可以作为机器学习入门者的参考,帮助他们更好地理解机器学习的基本概念和实现方法。
Python机器学习算法源代码是一个非常宝贵的资源,它涵盖了多种常用的学习模型,包括线性回归、逻辑回归、决策树、K-近邻(KNN)、朴素贝叶斯、支持向量机(SVM)、人工神经网络(ANN)以及K-Means聚类。这些算法在...
线性回归预测网店销售额的数据集
在本压缩包“Python3天快速入门机器学习项目资料.7z”中,你将找到一系列的资源,帮助你快速掌握Python3的基础以及其在机器学习领域的应用。这个压缩包包含多个子文件,分别对应不同阶段的学习内容,从第一天到第三...
综上所述,这本书为读者提供了一个全面的Python机器学习入门平台,涵盖了从数据预处理、模型选择、评估到实际应用的整个流程。通过阅读和实践,读者将具备基础的机器学习能力和解决实际问题的能力。
要快速入门机器学习,首先需要理解机器学习的基本概念,如监督学习、无监督学习、强化学习等,以及常见的机器学习算法,如线性回归、决策树、支持向量机等。 接下来,可以通过安装Python及其机器学习库(如scikit-...
在深入探讨Python机器学习之前,首先要明白Python是一种高级编程语言,因其简洁明了的语法和强大的库支持而备受青睐,特别是在数据分析和机器学习领域。Python不仅适合初学者,也适用于专业人士,它能够处理从简单的...
这篇概述将深入探讨Python在机器学习中的应用,以及如何通过这份"python 机器学习入门资料"来快速入门。 首先,理解机器学习的基本概念至关重要。机器学习是人工智能的一个分支,其目标是让计算机通过数据学习和...
总之,"利用Python机器学习教程入门1"旨在通过科比生涯数据,让初学者掌握Python在机器学习中的应用。无论你是体育爱好者还是数据分析新手,这个教程都将帮助你踏上数据科学的旅程,逐步提升你的技能,为未来的项目...
Python 机器学习基础教程 本教程主要涵盖机器学习的基础概念、Python 语言基础和机器学习...本教程旨在帮助读者快速入门机器学习领域,掌握 Python 语言基础和机器学习算法的实现,提高自己的技术能力和实践应用能力。
在吴恩达老师的机器学习课程中,逻辑回归被作为入门的分类模型来讲解,它通过一个非线性的sigmoid函数将线性回归的结果转换为0到1之间的概率值,进而进行类别预测。 **Python实现逻辑回归** Python作为数据科学...