取消网站的通知,夜狼seo,东莞网站优化什么方法,域名免费注册Python机器学习 – 用最小二乘法实现散点图
Machine Learning in Python – Implement Scatter Plot with Least Squares
By JacksonML
1. 最小二乘法定义 最小二乘法是由A.M.Legendre#xff08;勒让德#xff09;先生最早提出的。他在1805年#xff0c;通过《计算彗星轨…Python机器学习 – 用最小二乘法实现散点图
Machine Learning in Python – Implement Scatter Plot with Least Squares
By JacksonML
1. 最小二乘法定义 最小二乘法是由A.M.Legendre勒让德先生最早提出的。他在1805年通过《计算彗星轨道的新方法》提出最小二乘法。它的主要思想是通过求解模型未知参数使模型的理论值和观察值之差的平方和达到最小。 在散点图中如果散点大致分布在观测直线的附近则称两个变量x, y之间具有线性相关性。那么这条直线就叫做回归直线该直线方程为观察值y wx b
由于这条直线满足所有样本点到这条直线的距离最小因此选择点到直线的垂直距离来表示各点与直线的最小距离的偏差。
最小二乘法公式是一个数学的公式在数学上称为曲线拟合不仅包括线性回归方程还包括矩阵的最小二乘法。
2. 线性回归算法示例
最小二乘法属于线性回归算法的一种。以下给出Python代码来体现具体示例。 假设货运量和工业总产值都有一组数据现在要求求出工业总产值与货运量之间的函数关系。
程序需要先行安装matplotlib库在命令行窗口(cmd)或者Power Shell终端使用以下命令
pip install matplotlib安装完毕后导入matplotlib库然后将两组数据分别存储到x, y两个列表中再画出散点图。 代码如下所示
import matplotlib.pyplot as pltx [2.8, 2.9, 3.2, 3.2, 3.4, 3.2, 3.3, 3.7, 3.9, 4.2, 3.9, 4.1, 4.2, 4.4, 4.2]
y [25, 27, 29, 32, 34, 36, 35, 39, 42, 45, 44, 44, 45, 48, 47]plt.scatter(x, y)
plt.show()执行结果如下图所示
3. 最小二乘法示例
接下来定义函数avg(x), 这个函数的功能是求解平均数。函数avg传递参数x 返回的平均值等于求和除以样本数。
最后定义拟合函数fit(x, y), 返回变量w和b。并且调用拟合函数fit(x, y), 形成预测y值列表并绘制最终带观测直线的散点图。
完整代码如下
import matplotlib.pyplot as pltx [2.8, 2.9, 3.2, 3.2, 3.4, 3.2, 3.3, 3.7, 3.9, 4.2, 3.9, 4.1, 4.2, 4.4, 4.2]
y [25, 27, 29, 32, 34, 36, 35, 39, 42, 45, 44, 44, 45, 48, 47]plt.scatter(x, y)
plt.show()def avg(x):m len(x)sum 0for num in x:sum num return sum / m def fit(x, y):x_avg avg(x)y_avg avg(y)m len(x)tmp_1 0; tmp_2 0for i in range(m):tmp_1 (x[i] - x_avg) * (y[i] - y_avg)tmp_2 (x[i] - x_avg) ** 2w tmp_1 / tmp_2b y_avg - w * x_avgreturn w, b w, b fit(x, y)
print(w)
print(b)pre_y []
for i in range(len(y)):pre_y.append(w * x[i] b)plt.scatter(x, y)
plt.plot(x, pre_y, cr)
plt.show()运行该程序显示下图结果 退出该图后会显示出另一幅带观测直线的散点图如下图所示 这正是我们想要的结果
在以上程序中m为样本容量即实验次数x, y为任意一组实验的观测值。
4. 小结
本文简要介绍了最小二乘法上机实训的过程。通过最小二乘法的实践用Python外带的matplotlib库实现了散点图及其观测直线。
该程序实现的主要步骤如下 1 首先定义avg(x)函数返回x样本数据的平均数 2 其次拟合函数fit(x, y)通过调用avg()函数求解x的平均值和y的平均值同时求解x的长度即实验次数。 3 在初始化tmp_1, tmp_2的值为零后构建最小二乘法w公式的分子和分母然后求解w, b的值并返回。 4 接下来初始化预测y值的列表为空遍历所有元素并求解预测y值将其添加到预测y值列表。最后分别绘制观测直线并绘制散点图。
以上是用Python实现最小二乘法的过程希望对读者有所帮助。
参考文献
《机器学习技术及应用》徐宏英等著一书的监督学习的相关内容谨此表示感谢。
相关阅读
Python编程技巧 - 使用正则表达式Python编程技巧 - 单字符函数Python编程技巧 - 异常处理Python编程技巧 - 迭代器(Iterator)Python编程技巧 - Lambda函数Python编程技巧 - 使用字典Python编程技巧 - 使用字符串Strings)Python编程技巧 - 对象和类Python编程技巧 - 使用列表ListPython编程技巧 - 转换二进制、八进制和十六进制的函数Python编程技巧 - 函数入门安装2023最新版PyCharm来开发Python应用程序安装最新版Visual Studio Code来开发Python应用程序2023最新版Python 3.12.0安装使用指南