数学方法解决线性回归问题

简介: 【7月更文挑战第21天】数学方法解决线性回归问题

1.导入必要的库
在PyCharm中新建项目machine_learning,在machine_learning项目下新建Linear_regression.py,在PyCharm中编写以下代码。
import matplotlib.pyplot as plt
import numpy as np
需要NumPy库转换数据类型,需要Matplotlib的pyplot实现画图可视化。
2.设置一个初始的W和b

y = W * x + b

W = 0.9
b = 15
写代码的时候使用W代表权重,不使用k。为了保证名词统一以及专业性,之后的斜率k统一改为权重W。
3.在二维平面上创造一些数据
train_data = []
for i in range(150):

 # 从[0.0,80.0)中随机采样,注意定义域是左闭右开,即包含0.0,不包含80.0
 tr_x = np.random.uniform(0.0, 80.0)
 # 高斯分布的概率密度函数
 # tr_x:float,此概率分布的均值(对应着整个分布的中心center)
 # 3:float,此概率分布的标准差(对应于分布的宽度)
 tr_y = tr_x * W + b
 train_data.append([np.random.normal(tr_x, 3), np.random.normal(tr_y, 3)])

随机生成一些横纵坐标数据,横坐标为学习的小时数,纵坐标为最后的成绩,生成150个点进行拟合。由于直接使用随机数生成的点还是分布在一条直线上,所以采用高斯分布的密度函数对生成的x和y值进行范围性的随机化,使这些点不完全在一条直线上,而是散落在该直线的两侧。
4.将数据在水平方向上平铺,形成一个新的数组
data = np.hstack(train_data).reshape(-1, 2)
5.绘制散点图
plt.xlim((0, 85))
plt.ylim((10, 95))
plt.xlabel('time/h')
plt.ylabel('fraction')

冒号左边是行范围,冒号右边是列范围

第一维全取,第二维取第0个和第1个方向

plt.scatter(data[:, 0], data[:, 1], color="cyan", edgecolor="white")
plt.show()
plt.xlim()函数规定了x轴范围,plt.xlabel()函数绘制x轴的标签,plt.scatter()函数绘制散点图,颜色为cyan(青色),边缘为white(白色)。

目录
相关文章
|
7月前
|
机器学习/深度学习 数据采集 算法
线性回归算法是什么
线性回归算法是什么
97 0
|
4月前
|
机器学习/深度学习 数据挖掘 C#
用C#实现简单的线性回归
用C#实现简单的线性回归
55 1
|
5月前
什么是线性回归
【7月更文挑战第21天】什么是线性回归。
82 2
|
5月前
|
机器学习/深度学习
逻辑回归
【7月更文挑战第22天】逻辑回归
46 5
|
5月前
|
机器学习/深度学习 算法 数据挖掘
线性回归
【7月更文挑战第21天】线性回归。
63 1
|
6月前
|
机器学习/深度学习 存储 自然语言处理
逻辑回归的介绍和应用
**逻辑回归简介** 逻辑回归是一种分类模型,尽管名字含“回归”,实际上是用于二分类问题的。它简单易懂,计算高效,适用于许多领域,如医学、社会科学、市场营销等。优点是模型简单,易于实现,具有强解释性。然而,它易受多重共线性影响,可能欠拟合,分类精度有限,尤其对非线性问题和数据不平衡问题处理不佳。在实践中,逻辑回归常作为其他复杂算法的基线,如用于信用卡欺诈检测和点击率预测。通过调整和与其他技术结合,如GBDT,可以提升其性能。
|
7月前
R方和线性回归拟合优度
R方和线性回归拟合优度
|
7月前
使用R语言进行多项式回归、非线性回归模型曲线拟合
使用R语言进行多项式回归、非线性回归模型曲线拟合
|
机器学习/深度学习 API 算法框架/工具
二、逻辑回归
二、逻辑回归

热门文章

最新文章