📅  最后修改于: 2023-12-03 15:25:26.184000             🧑  作者: Mango
监督学习是一种机器学习算法,其通过对有标签的数据进行训练,可以预测出新数据的标签。在监督学习中,我们先拥有带有标签的数据集,输入数据到模型进行训练,找到合适的模型参数。训练完成后,我们用新的数据输入模型,模型就能够预测数据的标签了。
回归问题是一种监督学习问题,它的目标是预测连续值输出,例如一个数值或一个连续的数值范围。回归问题的输入可以是任何类型的,例如图像、音频、文本等。
在监督学习回归算法中,最常用的算法是线性回归和决策树回归。下面我们将用Python实现一个简单的线性回归算法。
线性回归算法通过基于数据建立一个线性方程来预测目标变量值。因此该方程将输入特征映射到输出y的线性映射。该方程的形式为:
其中 y 是目标变量,x 是输入变量, w 是一个向量,表示每个输入变量的权重,b 是一个偏置值,表示模型中没有考虑的其他因素。
import numpy as np
class LinearRegression:
def __init__(self, lr=0.01, n_iters=1000):
self.lr = lr
self.n_iters = n_iters
self.weights = None
self.bias = None
def fit(self, X, y):
n_samples, n_features = X.shape
self.weights = np.zeros(n_features)
self.bias = 0
for _ in range(self.n_iters):
y_pred = np.dot(X, self.weights) + self.bias
dw = (1 / n_samples) * np.dot(X.T, (y_pred - y))
db = (1 / n_samples) * np.sum(y_pred - y)
self.weights -= self.lr * dw
self.bias -= self.lr * db
def predict(self, X):
y_pred = np.dot(X, self.weights) + self.bias
return y_pred
import matplotlib.pyplot as plt
# 生成数据集
X = np.linspace(0, 10, 100).reshape(-1, 1)
y = 2 * X + 1 + np.random.randn(len(X), 1)
# 模型训练
regressor = LinearRegression(lr=0.01, n_iters=1000)
regressor.fit(X, y)
# 模型预测
y_pred = regressor.predict(X)
# 结果可视化
plt.scatter(X, y)
plt.plot(X, y_pred, color="red")
plt.xlabel("X")
plt.ylabel("y")
plt.show()
本文介绍了什么是监督学习,回归问题的定义,以及特别提到了线性回归算法。完整的Python代码片段均被放置在了代码段中,您可以轻松地将其复制到Python IDE中并运行。