Python 机器学习模型中的数据拟合与预测
在分类或回归中,我们需要我们的模型从输入数据(训练数据)中学习。例如,寻找最佳可能的模型参数值(在线性回归中) 当我在机器学习中学习分类部分时,我遇到了下面给出的代码(在MNIST数据集中分类“Not-5”的模型): 此代码来自handson ml master/03_Classification.ipynbPython 机器学习模型中的数据拟合与预测,python,machine-learning,scikit-learn,classification,Python,Machine Learning,Scikit Learn,Classification,在分类或回归中,我们需要我们的模型从输入数据(训练数据)中学习。例如,寻找最佳可能的模型参数值(在线性回归中) 当我在机器学习中学习分类部分时,我遇到了下面给出的代码(在MNIST数据集中分类“Not-5”的模型): 此代码来自handson ml master/03_Classification.ipynb from sklearn.base import BaseEstimator class Never5Classifier(BaseEstimator): def fit(self, X,
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")
这是定制的模型,所以我想知道数据是如何拟合的(黑匣子里发生了什么)。虽然我遇到了很多模型,但是有一些数学证明/方法来确定参数值 在上面给出的示例中,您的模型试图对数据集中的特定图形是否标记为数字
5
进行分类。这是通过向您的模型提供一个只包含数字5
的训练集来完成的,从这个训练集
,您的模型正在学习对于图形5
来说是唯一的特征(特征
)。这样,您的模型就可以从训练集中每个图像包含的28x28像素中学习。完成模型训练(将足够多的数字样本5
输入分类器)后,您的模型现在可以进行测试了。在测试阶段,您使用的是一个测试集
,在这种情况下,它将不同于您的模型从中学习到的训练集。它将在某种程度上有所不同,它不仅包含像在训练集中那样的数字5
,而且现在它将包含所有类型的数字(0-9
),并且您的模型将能够用1对每个样本进行分类,这意味着为真
(也称为5
),或者使用0
,它是false
(也就是说它不是5
)。这就是fit()
函数的工作方式。在这种情况下,您只需使用一个数字(在您的情况下是数字5
)来训练您的模型,然后您将测试您的模型是否能够查看测试集中的随机数字实际上是5
还是其他数字。在您的训练集上调用fit()
后,您的模型已经学会识别数字5
,但它没有了解3、8、4或1
是什么样子,但它可以知道,如果它不是5
,那么它就是另一个模型尚未学会的数字 你在哪里找到这个代码的?请链接那个。@VivekKumar完成!Never5分类软件不学习任何东西,总是预测所有数据为负值。i、 e.不是5。