机器学习中的线性回归模型在python中的掉包使用(代码分析)

pythonCopy code
import numpy as np

random_array = np.random.rand(5) #生成包含 5 个元素的随机数组

print(random_array)

  • Python中的Scikit-learn(sklearn)包中的linear模块时,可以进行许多线性回归和分类任务。下面是一个简单的例子,展示如何使用linear模块来拟合一个线性回归模型。
  • 第一步,是导入相关python包。
import numpy as np //矩阵包,用于处理多组必要数据
import matplotlib.pyplot as plt//matlab绘图实验室包,用于将结果可视化
from sklearn.linear_model import LinearRegression//基本线性回归模型包,sklearn
  • 接着,需要对于输入参数进行模拟,此处使用random伪随机数(时间)进行模拟,相关代码如下:
#生成模拟数据
np.random.seed(0)
x = np.random.rand(100, 1)
y = 2 + 3 * x + np.random.randn(100, 1)

 下分化线为对出现的函数做的解释


上处调用了np.random.rand() 函数

当您需要生成一些随机数的时候,可以使用 NumPy 库的 np.random.rand() 函数。

np.random.rand() 函数可以用来生成指定维度的随机数组。具体来说,这个函数可以接受一个或多个整数参数,用来指定生成随机数组的维度。例如,如果您想生成一个一维的随机数组,可以使用以下代码:

pythonCopy code
import numpy as np

random_array = np.random.rand(5) #生成包含 5 个元素的随机数组

print(random_array)

 输出结果可能如下所示(由于是随机数,每次运行结果都会有所不同):

csharpCopy code
[0.43543224 0.92094327 0.69310049 0.22324618 0.56398409]

除了一维数组之外,您还可以使用 np.random.rand() 函数来生成多维的随机数组。例如,以下代码可以生成一个 3 行 4 列的二维随机数组:

pythonCopy code
import numpy as np

random_array = np.random.rand(3, 4) #生成 3 行 4 列的二维随机数组

print(random_array)

需要注意的是,np.random.rand() 函数生成的随机数取值范围是 [0, 1),也就是包含 0,但不包含 1。如果您需要生成其他范围内的随机数,可以考虑使用其他 NumPy 库中的随机数函数。


  • 其中我们对x产生长度为(100,1)的随机数,对应的x我们使用高斯噪音生成,也就是常说的正态分布如上方代码中,其含义就是聚集于2+3*x的一些散点,这些散点趋于正态分布。
  • 做完这些工作以后,便可进行拟合,拟合包中具体过程使用了梯度下降法(高等数学),分别并同时求偏导,通俗的理解就是“婴儿下山的道路”,其宗旨是找极小值点,故一个多元代价函数是不止一个极小值点,有些时候是找不到最小值点的。拟合代码如下:
#创建一个线性回归对象
lr = LinearRegression()

#拟合模型
lr.fit(x, y)
  • 做完上方工作以后,我们已经拥有了一个线性回归模型,接下来便可对后来的点进行相关预测,其代码如下:
#生成新的数据点
x_new = np.array([[0.5]])

#使用模型进行预测
y_new = lr.predict(x_new)

print(y_new)
  • 后可将结果可视化,代码如下:
#可视化数据和模型
plt.scatter(x, y)
plt.plot(x, lr.predict(x), color='red', linewidth=2)
plt.show()
  • 生成图像为:机器学习中的线性回归模型在python中的掉包使用(代码分析)_第1张图片
  • 这便是机器学习学习的第一个模型,线性回归模型。
  • 汇总代码如下:
    #生成模拟数据
    np.random.seed(0)
    x = np.random.rand(100, 1)
    y = 2 + 3 * x + np.random.randn(100, 1)
    在这个例子中,我们生成了一个随机的x向量,其形状为(100,1),然后生成一个随机的y向量,其形状也为(100,1)。在这个例子中,y是通过将x乘以3并添加一个截距项来生成的,还添加了一些高斯噪声。
    
    现在我们可以使用LinearRegression类来拟合线性回归模型:
    
    python
    Copy code
    #创建一个线性回归对象
    lr = LinearRegression()
    
    #拟合模型
    lr.fit(x, y)
    现在,我们已经在我们的数据上拟合了一个线性回归模型。我们可以使用训练好的模型来预测新的数据点:
    
    python
    Copy code
    #生成新的数据点
    x_new = np.array([[0.5]])
    
    #使用模型进行预测
    y_new = lr.predict(x_new)
    
    print(y_new)
    这个模型的预测结果应该接近于2.5 + 3 * 0.5 = 4。
    
    我们还可以可视化模型的结果:
    
    python
    Copy code
    #可视化数据和模型
    plt.scatter(x, y)
    plt.plot(x, lr.predict(x), color='red', linewidth=2)
    plt.show()
    这将显示模拟数据和拟合模型的线性回归线。
    
    完整的代码如下:
    
    python
    Copy code
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.linear_model import LinearRegression
    
    #生成模拟数据
    np.random.seed(0)
    x = np.random.rand(100, 1)
    y = 2 + 3 * x + np.random.randn(100, 1)
    
    #创建一个线性回归对象
    lr = LinearRegression()
    
    #拟合模型
    lr.fit(x, y)
    
    #生成新的数据点
    x_new = np.array([[0.5]])
    
    #使用模型进行预测
    y_new = lr.predict(x_new)
    
    print(y_new)
    
    #可视化数据和模型
    plt.scatter(x, y)
    plt.plot(x, lr.predict(x), color='red', linewidth=2)
    plt.show()

你可能感兴趣的:(python,机器学习,线性回归)