机器学习模型中的数据拟合与预测

问题描述 投票:-2回答:1

在分类或回归中,我们需要我们的模型来学习输入数据(训练数据)。与示例一样,找到最佳模型参数值(在线性回归中)。

当我在机器学习中经历分类部分时,我遇到了下面给出的代码(在MNIST数据集中对“Not-5”进行分类的模型):

此代码来自Github-Aurelien Geron handson-ml-master / 03_Classification.ipynb

from sklearn.base import BaseEstimator
class Never5Classifier(BaseEstimator):
def fit(self, X, y=None): # fit the data
    pass
def predict(self, X):
    print(X.shape)
    print(len(X))
    return np.zeros((len(X), 1), dtype=bool)

以下是在模型上执行交叉验证的代码。

never_5_clf = Never5Classifier()

cross_val_score(never_5_clf, X_train, y_train_5, cv=3, scoring="accuracy")

那么这是定制模型,所以我想知道数据是如何拟合的(黑盒内发生了什么)。虽然我遇到了很多模型,但是有一些数学证明/方法来确定参数值。

python machine-learning scikit-learn classification
1个回答
0
投票

在上面给出的示例中,您的模型正在尝试对数据集中的特定数字是否标记为数字5进行分类。这是通过用training set中仅包含数字5training set喂你的模型来完成的,你的模型正在学习什么是特征(features),这对于图5来说是独一无二的。这样,您的模型就是从training set中包含的每个图像的28x28像素中学习。完成模型训练后(将足够数量的5样本提供给分类器),您的模型现在可以进行测试了。在测试阶段,您使用的是testing set,在这种情况下,它将与您的模型从中学习的training set不同。它的不同之处在于它不仅包含像5中的数字training set,而且现在它将包含所有类型的数字(0-9),并且您的模型将能够将每个样本分类为1,这意味着true (又名它是5),或0false(又名它不是5)。这就是fit()函数在这种情况下工作的方式,你只用一个数字训练你的模型(在你的情况下它是数字5),然后你测试你的模型是否能够看到一个随机来自testing set的数字实际上是5或其他数字。在你的fit()上调用training set之后,你的模型已经学会识别数字5,但它没有学习3, 8, 4 or 1是怎么样的,但它可以知道如果它不是5,而不是它是模型没有的另一个数字学到了。

© www.soinside.com 2019 - 2024. All rights reserved.