📜  带Python的AI –监督学习:回归(1)

📅  最后修改于: 2023-12-03 15:25:26.184000             🧑  作者: Mango

带Python的AI –监督学习:回归

什么是监督学习

监督学习是一种机器学习算法,其通过对有标签的数据进行训练,可以预测出新数据的标签。在监督学习中,我们先拥有带有标签的数据集,输入数据到模型进行训练,找到合适的模型参数。训练完成后,我们用新的数据输入模型,模型就能够预测数据的标签了。

回归问题

回归问题是一种监督学习问题,它的目标是预测连续值输出,例如一个数值或一个连续的数值范围。回归问题的输入可以是任何类型的,例如图像、音频、文本等。

监督学习回归算法

在监督学习回归算法中,最常用的算法是线性回归和决策树回归。下面我们将用Python实现一个简单的线性回归算法。

线性回归

线性回归的原理

线性回归算法通过基于数据建立一个线性方程来预测目标变量值。因此该方程将输入特征映射到输出y的线性映射。该方程的形式为:

image

其中 y 是目标变量,x 是输入变量, w 是一个向量,表示每个输入变量的权重,b 是一个偏置值,表示模型中没有考虑的其他因素。

线性回归Python代码

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中并运行。