errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
在本教程中,我将向你展示如何使用Sklearn Fit方法来 "拟合 "Python中的机器学习模型。
因此,我将快速回顾该方法的作用,解释其语法,并向你展示一个如何使用该技术的分步例子。
如果你需要具体的东西,只需点击以下任何一个链接。 该链接将带你到教程中的相应章节。
目录
- 简介
- 语法
- 例子
用Sklearn Fit进行模型拟合的快速介绍
为了理解sklearn Fit函数的作用,你需要对机器学习过程有一些了解。
一般来说,当我们建立一个机器学习模型时,我们有一个机器学习算法和一个训练数据集。
请记住,机器学习算法是一种在我们将其暴露于数据时进行学习的算法。 用汤姆-米切尔的话说:机器学习算法是一种在接触数据时能提高任务性能的算法。
因此,为了让机器学习算法进行学习,它必须暴露在一些数据中。
我们需要用数据来 "训练 "一个机器学习算法。
这就是我们使用训练数据的地方。
训练数据集是一种输入,我们用它来使机器学习算法 "学习",所以它可以提高其在任务上的表现。
因此,我们有我们的训练数据,我们把它输入机器学习算法,算法 "学习 "如何在这些训练数据的基础上提高其性能。
之后,一旦模型被 "训练 "出来,我们就可以用它来做一些事情,比如进行预测。
Sklearn Fit方法 "训练 "模型
现在我们已经从高层次上回顾了机器学习的过程,让我们再来看看Scikit learn。
Scikit learn是一个用于Python的机器学习工具箱。 因此,它有执行机器学习过程步骤的工具,比如训练一个模型。
scikit learn的 "fit "方法就是这些工具中的一个。在模型被初始化之后,"适合 "方法在训练数据上训练算法。 这就是它所做的一切。
因此,sklearn fit方法使用训练数据作为输入来训练机器学习模型。
一旦训练完成,我们就可以使用其他scikit learning方法--比如预测和评分--继续机器学习过程。
Sklearn Fit方法的语法
现在我们已经回顾了sklearn Fit方法的作用,让我们看看其语法。
请记住,这里的语法解释假定你已经导入了scikit-learn,并且你已经有了一个初始化的模型,比如LinearRegression
,RandomForestRegressor
, 等等。
拟合 "语法
好的,让我们来看看这个语法。
当我们调用fit
方法时,我们需要从一个现有的机器学习模型的实例中调用它(例如:LinearRegression
,LogisticRegression
,DecisionTreeRegressor
,SVM
)。
一旦你初始化了一个模型的实例,那么你就可以调用这个方法。
然后,在括号内,你提供训练数据集的特征和目标向量(或标签向量)。 这些数据集有时被称为X_train
和y_train
。
因此,例如,如果你用LinearRegression
模型的一个实例做线性回归,称为my_linear_regressor
,你可能有这样的代码。
my_linear_regressor.fit(X_train, y_train)
在大多数情况下,这就是它的全部内容。
输入数据的格式
fit()
方法的X输入,X_train
,需要是二维的格式,比如二维的numpy数组。
如果X_train
不是二维格式的,你可能会得到一个错误。 在这种情况下,你需要将X_test
的数据重塑为2维。
(我会在接下来的例子部分向你展示)。
多次调用sklearn拟合方法
最后一个注意事项。
如果你多次调用sklearn fit方法,那么你第二次调用fit方法将覆盖你第一次调用该方法时学到的任何东西。
有时,你会有意要这样做,但要小心。 训练一个模型可能需要大量的时间和计算机处理。 多次调用拟合方法可能在时间和资源上都很昂贵。 最起码,它将删除算法在过去学到的任何东西。
例子:如何使用Sklearn Fit
现在我们已经看了语法,让我们看一个如何使用sklearn Fit的例子。
在这里,我将向你展示一个如何使用sklearn fit方法来训练一个模型的例子。
在这个例子中,你需要做几件事,包括运行一些设置代码,然后拟合模型。
步骤
- 运行设置代码
- 拟合模型
- 预测新值
运行设置代码
在你拟合模型之前,你需要做几件事。
我们需要
- 导入scikit-learn和其他软件包
- 创建一些训练数据
- 初始化一个模型
让我们快速完成每一项工作。
导入Scikit Learn和其他软件包
首先,让我们导入我们将使用的包
我们要导入scikit learn。
我们还将导入Numpy和Seaborn。 我们将使用Numpy来创建一些假的训练数据,我们将使用Seaborn来绘制这些数据。
你可以用下面的代码导入这些包。
import sklearn
import numpy as np
import seaborn as sns
创建训练数据
接下来,我们将创建一些训练数据。
具体来说,我们要创建一些大致上是线性的数据,其中有一点噪音。
为了做到这一点,我们将。
- 为X轴变量创建51个间隔均匀的数字
- 创建一个与X轴变量呈线性关系的Y轴变量,并加入一些正态分布的噪声
所以在这里,我们将使用Numpy linspace和Numpy random normal来创建我们的变量x_var
和y_var
。
observation_count = 51
x_var = np.linspace(start = 0, stop = 10, num = observation_count)
np.random.seed(22)
y_var = x_var + np.random.normal(size = observation_count, loc = 1, scale = 2)
注意,我们还使用了Numpy random seed,为Numpy的伪随机数生成器设置种子,它被np.random.normal所使用。
让我们也用Seaborn绘制数据。
sns.scatterplot(x = x_var, y = y_var)
输出
分割数据
我们还将拆分数据集,使用scikit learn的训练-测试拆分函数。
from sklearn.model_selection import train_test_split
(X_train, X_test, y_train, y_test) = train_test_split(x_var, y_var, test_size = .2)
这给了我们4个数据集。
- 训练特征(X_train)
- 训练目标(y_train)
- 测试特征(X_test)
- 测试目标(y_test)
初始化模型
现在,我们将初始化一个模型对象。
这里,为了简单起见,我们将使用DummyRegressor。
from sklearn.dummy import DummyRegressor
dummy_regressor = DummyRegressor()
一旦你运行这个,dummy_regressor
是一个sklearn模型对象,我们可以从中调用fit
方法。
拟合模型
现在,我们要拟合模型。
dummy_regressor.fit(X_train.reshape(-1,1), y_train)
在这里,我们用X_train
和y_train
来拟合模型。 你可以看到,拟合的第一个参数是X_train
,第二个参数是y_train
。
这就是我们在拟合机器学习模型时的典型做法。 我们通常用 "训练 "数据来拟合模型。
注意,X_train已经被重塑为2维格式。
预测
通常,在我们拟合一个模型后,我们会根据测试特征(X_test
)来预测新的输出值。(注意,X_test
需要是二维格式的,所以我们要用Numpy reshape来重塑它)。
让我们快速完成这个工作。
dummy_regressor.predict(X_test.reshape(-1,1))
输出
array([5.5831811, 5.5831811, 5.5831811, 5.5831811, 5.5831811, 5.5831811,
5.5831811, 5.5831811, 5.5831811, 5.5831811, 5.5831811])
在这里,模型对任何输入都预测了数值5.5831811,这可能看起来很奇怪。 这是因为我们使用的是DummyRegressor模型,它的预测值是训练Y值的平均值(y_train的平均值)。
再次强调:这可能看起来很奇怪,但它作为一个基线是很有用的,你可以据此判断其他机器学习模型的性能。
而在这种情况下,它只是一个简单的例子,我们可以在尝试学习如何用sklearn fit来拟合模型时使用。
在本教程中,我已经向你展示了如何使用sklearn fit方法。
但是如果你想掌握Python中的机器学习,还有很多东西需要学习。
推荐阅读
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8
-
errorsk-4nQwBFp0LP8NpyK9WwwoT3BlbkFJyH23SKdFWR1P9Sr63sF8