精华内容
下载资源
问答
  • 机器学习数据拆分 数据集分割 (Dataset Splitting) Splitting up into Training, Cross Validation, and Test sets are common best practices. This allows you to tune various parameters of the algorithm ...

    机器学习数据拆分

    数据集分割 (Dataset Splitting)

    Splitting up into Training, Cross Validation, and Test sets are common best practices. This allows you to tune various parameters of the algorithm without making judgements that specifically conform to training data.

    分为培训,交叉验证和测试集是常见的最佳实践。 这使您可以调整算法的各种参数,而无需做出专门符合训练数据的判断。

    动机 (Motivation)

    Dataset Splitting emerges as a necessity to eliminate bias to training data in ML algorithms. Modifying parameters of a ML algorithm to best fit the training data commonly results in an overfit algorithm that performs poorly on actual test data. For this reason, we split the dataset into multiple, discrete subsets on which we train different parameters.

    数据集拆分是消除ML算法中训练数据偏差的必要条件。 修改ML算法的参数以最适合训练数据通常会导致过拟合算法,该算法在实际测试数据上的表现不佳。 因此,我们将数据集分为多个离散子集,在这些子集上训练不同的参数。

    训练集 (The Training Set)

    The Training set is used to compute the actual model your algorithm will use when exposed to new data. This dataset is typically 60%-80% of your entire available data (depending on whether or not you use a Cross Validation set).

    训练集用于计算算法在暴露给新数据时将使用的实际模型。 该数据集通常占整个可用数据的60%-80%(取决于您是否使用交叉验证集)。

    交叉验证集 (The Cross Validation Set)

    Cross Validation sets are for model selection (typically ~20% of your data). Use this dataset to try different parameters for the algorithm as trained on the Training set. For example, you can evaluate different model parameters (polynomial degree or lambda, the regularization parameter) on the Cross Validation set to see which may be most accurate.

    交叉验证集用于模型选择(通常约占数据的20%)。 使用此数据集尝试对训练集上训练的算法使用不同的参数。 例如,您可以在“交叉验证”集上评估不同的模型参数(多项式或lambda,正则化参数),以查看哪个模型参数最准确。

    测试集 (The Test Set)

    The Test set is the final dataset you touch (typically ~20% of your data). It is the source of truth. Your accuracy in predicting the test set is the accuracy of your ML algorithm.

    测试集是您接触的最终数据集(通常是数据的约20%)。 这是真理的源头。 预测测试集的准确性就是ML算法的准确性。

    随机森林 (Random Forest)

    A Random Forest is a group of decision trees that make better decisions as a whole than individually.

    随机森林是一组决策树,它们总体上比单独决策更好。

    问题 (Problem)

    Decision trees by themselves are prone to overfitting. This means that the tree becomes so used to the training data that it has difficulty making decisions for data it has never seen before.

    决策树本身很容易过度拟合 。 这意味着树变得非常习惯于训练数据,以至于难以为从未见过的数据做出决策。

    随机森林的解决方案 (Solution with Random Forests)

    Random Forests belong in the category of ensemble learning algorithms. This class of algorithms use many estimators to yield better results. This makes Random Forests usually more accurate than plain decision trees. In Random Forests, a bunch of decision trees are created. Each tree is trained on a random subset of the data and a random subset of the features of that data. This way the possibility of the estimators getting used to the data (overfitting) is greatly reduced, because each of them work on the different data and features than the others. This method of creating a bunch of estimators and training them on random subsets of data is a technique in ensemble learning called bagging or Bootstrap AGGregatING. To get the prediction, the each of the decision trees vote on the correct prediction (classification) or they get the mean of their results (regression).

    随机森林属于集成学习算法的类别。 这类算法使用许多估计器来产生更好的结果。 这使得随机森林通常比普通决策树更准确 。 在随机森林中,创建了一堆决策树。 每棵树都在数据的随机子集和数据特征的随机子集上训练 。 这样,估计器习惯于数据(过度拟合)的可能性就大大降低了,因为它们每个都处理不同的数据和特征 。 创造了一堆估计和训练他们对数据的随机子集的这种方法是在集成学习称为装袋引导聚集的技术。 为了获得预测,每个决策树都对正确的预测(分类)进行投票,或者获取结果的均值(回归)。

    在Python中提升的示例 (Example of Boosting in Python)

    In this competition, we are given a list of collision events and their properties. We will then predict whether a τ → 3μ decay happened in this collision. This τ → 3μ is currently assumed by scientists not to happen, and the goal of this competition was to discover τ → 3μ happening more frequently than scientists currently can understand. The challenge here was to design a machine learning problem for something no one has ever observed before. Scientists at CERN developed the following designs to achieve the goal. https://www.kaggle.com/c/flavours-of-physics/data

    在这次比赛中,我们给出了碰撞事件及其属性的列表。 然后,我们将预测在此碰撞中是否发生了τ→3μ衰减。 科学家目前认为τ→3μ不会发生,并且该竞赛的目的是发现τ→3μ的发生比科学家目前所能理解的更为频繁。 这里的挑战是设计一种机器学习问题,以解决以前从未见过的问题。 欧洲核子研究中心的科学家开发了以下设计来实现这一目标。 https://www.kaggle.com/c/flavours-of-physics/data

    #Data Cleaning
    import pandas as pd
    data_test = pd.read_csv("test.csv")
    data_train = pd.read_csv("training.csv")
    data_train = data_train.drop('min_ANNmuon',1)
    data_train = data_train.drop('production',1)
    data_train = data_train.drop('mass',1)
    
    #Cleaned data
    Y = data_train['signal']
    X = data_train.drop('signal',1)
    
    #adaboost
    from sklearn.ensemble import AdaBoostClassifier
    from sklearn.tree import DecisionTreeClassifier
    seed = 9001 #this ones over 9000!!!
    boosted_tree = AdaBoostClassifier(DecisionTreeClassifier(max_depth=1), algorithm="SAMME", 
                                      n_estimators=50, random_state = seed)
    model = boosted_tree.fit(X, Y)
    
    predictions = model.predict(data_test)
    print(predictions)
    #Note we can't really validate this data since we don't have an array of "right answers"
    
    #stochastic gradient boosting
    from sklearn.ensemble import GradientBoostingClassifier
    gradient_boosted_tree = GradientBoostingClassifier(n_estimators=50, random_state=seed)
    model2 = gradient_boosted_tree.fit(X,Y)
    
    predictions2 = model2.predict(data_test)
    print(predictions2)

    翻译自: https://www.freecodecamp.org/news/key-machine-learning-concepts-explained-dataset-splitting-and-random-forest/

    机器学习数据拆分

    展开全文
  • 机器学习中的数据分为训练数据集、验证数据集和测试数据集。 通常,在训练有监督的机器学习模型的时候,会将数据划分为训练集、验证集合测试集,划分比例一般为0.6:0.2:0.2。对原始数据进行三个集合的划分,是为了...

    1.数据集分类

    机器学习中的数据分为训练数据集、验证数据集和测试数据集

    通常,在训练有监督的机器学习模型的时候,会将数据划分为训练集、验证集合测试集,划分比例一般为0.6:0.2:0.2。对原始数据进行三个集合的划分,是为了能够选出效果(可以理解为准确率)最好的、泛化能力最佳的模型。

    训练集(Training set)

    作用是用来拟合模型,通过设置分类器的超参数,训练分类模型。后续结合验证集作用时,会选出同一参数的不同取值,拟合出多个分类器。训练集是一些我们已经知道输入和输出的数据集训练机器去学习,通过拟合去寻找模型的初始参数。例如在神经网络(Neural Networks)中, 我们用训练数据集和反向传播算法(Backpropagation)去每个神经元找到最优的比重(Weights)。

    验证集(Cross Validation set)

    作用是当通过训练集训练出多个模型后,为了能找出效果最佳的模型,使用各个模型对验证集数据进行预测,并记录模型准确率。选出效果最佳的模型所对应的参数,即用来调整模型参数。如svm中的参数c和核函数等。

    验证集也是一些我们已经知道输入和输出的数据集,通过让机器学习去优化调整模型的参数,在神经网络中, 我们用验证数据集去寻找最优的网络深度(number of hidden layers),或者决定反向传播算法的停止点;在普通的机器学习中常用的交叉验证(Cross Validation) 就是把训练数据集本身再细分成不同的验证数据集去训练模型。

    测试集(Test set)

    通过训练集和验证集得出最优模型后,使用测试集进行模型预测。用来衡量该最优模型的性能和分类能力。即把测试集当做从来不存在的数据集,当已经确定模型参数后,使用测试集进行模型性能评价。测试集是用户测试模型表现的数据集,根据误差(一般为预测输出与实际输出的不同)来判断一个模型的好坏。

    对原始数据进行三个数据集的划分,也是为了防止模型过拟合。当使用了所有的原始数据去训练模型,得到的结果很可能是该模型最大程度地拟合了原始数据,亦即该模型是为了拟合所有原始数据而存在。当新的样本出现,再使用该模型进行预测,效果可能还不如只使用一部分数据训练的模型。

    为什么验证集合测试集都需要:

    “验证数据集” 主要用于描述调整参数和数据预处理时的模型评估,而 “测试数据集” 则主要用于描述最终模型之间的模型能力评估。

    只有训练集和测试集的弊端:

    有可能会针对测试数据过拟合,因为每次都是找到参数训练模型,然后看看在测试数据集上的表现如何,这就让我们的模型又被测试数据集左右了,既可以理解为训练出的模型对特定的训练数据集和特定的测试数据集表现都不错,但是再来一种类似的样本数据,表现可能又不尽如人意了。

    那么要彻底解决这个问题,就要引入验证数据集的概念,既将样本数据分为三份,训练数据集、验证数据集、测试数据集。

    训练数据集和之前的用途一样,是用来训练模型的。

    验证数据集的作用和之前的测试数据集一样,是用来验证由训练数据集训练出的模型的好坏程度的,或者说是调整超参数使用的数据集。

    此时的测试数据集和之前的作用就不一样了,这里的测试数据集是当训练出的模型在训练数据集和验证数据集上都表现不错的前提下,最终衡量该模型性能的数据集。测试数据集在整个训练模型的过程中是不参与的。

    交叉验证:

    交叉验证其实解决的是随机选取验证数据集的问题,因为如果验证数据集是固定的,那么万一验证数据集过拟合了,那就没有可用的验证数据集了,所以交叉验证提供了随机的、可持续的、客观的模型验证方式。

    交叉验证的思路是将训练数据分成若干份,假设分为A、B、C三份,分别将这三份各作为一次验证数据集,其他两份作为训练数据集训练模型,然后将训练出的三个模型评分取均值,将这个均值作为衡量算法训练模型的结果来调整参数,如果平均值不够好,那么再调整参数,再训练出三个模型,以此类推。

    2.分类结果评价

    精准度:预测结果正确的占总数的比例。这种评价结果对于极度偏斜的数据不适用。如果癌症产生的概率是0.1%,那其实根本不需要任何机器学习算法,只要系统预测所有人都是健康的,即可达到99.9%的准确率。

    混淆矩阵:对于二分类问题来说,所有的问题被分为0和1两类,混淆矩阵是2*2的矩阵:

     

     

    预测值0

    预测值1

    真实值0

    TN

    FP

    真实值1

    FN

    TP

    TN:真实值是0,预测值也是0,即我们预测是negative,预测正确了。

    FP:真实值是0,预测值是1,即我们预测是positive,但是预测错误了。

    FN:真实值是1,预测值是0,即我们预测是negative,但预测错误了。 

    TP:真实值是1,预测值是1,即我们预测是positive,预测正确了。

     精准率:精准率: ,所谓的精准率是:分母为所有预测为1的个数,分子是其中预测对了的个数,即预测值为1,且预测对了的比例为什么管它叫精准率呢?在有偏的数据中,我们通常更关注值为1的特征,比如“患病”,比如“有风险”。在100次结果为患病的预测,平均有40次预测是对的。即精准率为我们关注的那个事件,预测的有多准。

    召回率:召回率:。所谓召回率是:所有真实值为1的数据中,预测对了的个数。每当有10个癌症患者,算法可以成功的预测出8个 。也就是我们关注的那个事件真实的发生情况下,我们成功预测的比例是多少。 

    F1 score:具体使用算法时,怎么通过精准率和召回率判断算法优劣?

    根据具体使用场景而定:

    例1:股票预测,未来该股票是升还是降?业务要求更精准的找到能够上升的股票;此情况下,模型精准率越高越优。

    例2:病人诊断,就诊人员是否患病?业务要求更全面的找出所有患病的病人,而且尽量不漏掉一个患者;甚至说即使将正常人员判断为病人也没关系,只要不将病人判断成健康人员就好。此情况,模型召回率越高越优。

    描述精准率和召回率的平衡:

    1. F1 是 precision 和 recall 的调和平均值;
    2. 调和平均值:如果 1/a = (1/b + 1/c) / 2,则称 a 是 b 和 c 的调和平均值;
    3. 调和平均值特点:|b - c| 越大,a 越小;当 b - c = 0 时,a = b = c,a 达到最大值;
    4. 具体到精准率和召回率,只有当二者大小均衡时,F1 指标才高,
    展开全文
  • 在上篇文章《机器学习入门算法之KNN》中,提到了训练数据和测试数据,即数据拆分的两个子集。 训练集 - 用于训练模型的子集; 测试集 -需要测试分类的数据。 为什么需要将数据拆分呢,比如我们在建立一个模型后,...

    1.数据拆分

    在上篇文章《机器学习入门算法之KNN》中,提到了训练数据和测试数据,即数据拆分的两个子集。
    训练集 - 用于训练模型的子集;
    测试集 -需要测试分类的数据。
    为什么需要将数据拆分呢,比如我们在建立一个模型后,能够得到一个预测结果,如何来判断这个模型预测的结果是准确的呢?
    因此,一般会将一组原始数据拆分为训练数据和测试数据两个子集,训练数据用于训练模型,而测试数据用于测试模型的准确度。
    根据二八原则,一般将80%的数据用于训练模型,20%的数据用于测试模型的好坏。

    2.评价分类结果

    (1)准确度
    分类准确度是指模型训练后,对测试数据的预测准确度。其实模型的好坏并不一定完全取决于准确度的高低,比如极度偏斜(skewed data)的数据,一场男篮球赛中,有一百个观众,其中这一百个观众中只有一个女生,预测观众是男还是女,那么模型预测的准确率会达到99%。如果模型本身有问题,那模型预测结果依然会很高,无法真正评价模型的好坏。因此只有准确度还不够,还需要混淆矩阵。
    (2)混淆矩阵(Confusion Matrix)
    对于二分类问题:
    在这里插入图片描述

    对于下图一组数据:
    在这里插入图片描述
    精准率:预测为1,预测对的概率。将1作为我们真正预测关注的对象
    precision=在这里插入图片描述
    召回率:分母为真实值为1,分子为TP,预测真实值为1的概率
    在这里插入图片描述在这里插入图片描述

    精准率和召回率Python代码实现

    采用digits数据集,为了达到极度偏斜的效果,我们将所有数据设为如果是9为1,不是9为0

    #!/usr/bin/env python 
    # -*- coding:utf-8 -*-
    import numpy as np
    from sklearn import datasets
    from sklearn.linear_model import LogisticRegression
    from sklearn.model_selection import train_test_split
    
    #当真实值为0,且预测值为0时,即TN
    def TN(y_true, y_predict):
        assert len(y_true) == len(y_predict)
        return np.sum((y_true == 0) & (y_predict == 0))
    
    #当真实值为0,预测值为1时,即FP
    def FP(y_true, y_predict):
        assert len(y_true) == len(y_predict)
        return np.sum((y_true == 0) & (y_predict == 1))
    
    #当真实值为1,预测值为0时,即FN
    def FN(y_true, y_predict):
        assert len(y_true) == len(y_predict)
        return np.sum((y_true == 1) & (y_predict == 0))
    
    #当真实值为1,预测值也为1时,即TP
    def TP(y_true, y_predict):
        assert len(y_true) == len(y_predict)
        return np.sum((y_true == 1) & (y_predict == 1))
    
    #混淆矩阵
    def confusion_matrix(y_true, y_predict):
        return np.array([
            [TN(y_true, y_predict), FP(y_true, y_predict)],
            [FN(y_true, y_predict), TP(y_true, y_predict)]
        ])
    
    #精准率
    def precision_score(y_true, y_predict):
        tp = TP(y_true, y_predict)
        fp = FP(y_true, y_predict)
        try:
            return tp / (tp + fp)
        except:
            return 0.0
    
    #召回率
    def recall_score(y_true, y_predict):
        tp = TP(y_true, y_predict)
        fn = FN(y_true, y_predict)
        try:
            return tp / (tp + fn)
        except:
            return 0.0
    
    digits = datasets.load_digits()
    X = digits.data
    y = digits.target.copy()
    y[digits.target==9] = 1  #等于9的为1,不等于9的为0
    y[digits.target!=9] = 0
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
    
    #逻辑回归预测
    log_reg = LogisticRegression()
    log_reg.fit(X_train, y_train)
    log_reg.score(X_test, y_test)
    
    # 获取预测的答案
    y_log_predict = log_reg.predict(X_test)
    
    print("TN:",TN(y_test,y_log_predict))
    print("TP",TP(y_test,y_log_predict))
    print("FN",FN(y_test,y_log_predict))
    print("FP",FP(y_test,y_log_predict))
    print("混淆矩阵:",confusion_matrix(y_test,y_log_predict))
    
    print("精准率:", precision_score(y_test, y_log_predict))
    print("召回率:", recall_score(y_test, y_log_predict))
    
    TN: 403
    TP 36
    FN 9
    FP 2
    混淆矩阵: [[403   2]
     [  9  36]]
    精准率: 0.9473684210526315
    召回率: 0.8
    

    本周暂时只学到这些,后续要加油跟进。

    展开全文
  • 机器学习数据集的拆分

    千次阅读 2018-09-12 10:19:10
    机器学习中,通常将所有的数据划分为三份:训练数据集、验证数据集和测试数据集。它们的功能分别为 训练数据集(train dataset):用来构建机器学习模型 验证数据集(validation dataset):辅助构建模型,用于....

    转自:https://feisky.xyz/machine-learning/basic/datasets.html

    通常将数据集分为三类,分为俩类的是留出法。

    在机器学习中,通常将所有的数据划分为三份:训练数据集、验证数据集和测试数据集。它们的功能分别为

    • 训练数据集(train dataset):用来构建机器学习模型
    • 验证数据集(validation dataset):辅助构建模型,用于在构建过程中评估模型,为模型提供无偏估计,进而调整模型超参数
    • 测试数据集(test dataset):用来评估训练好的最终模型的性能

    data set

    不断使用测试集和验证集会使其逐渐失去效果。也就是说使用相同数据来决定超参数设置或其他模型改进的次数越多,对于这些结果能够真正泛化到未见过的新数据的信心就越低。请注意,验证集的失效速度通常比测试集缓慢。如果可能的话,建议收集更多数据来“刷新”测试集和验证集。重新开始是一种很好的重置方式。

    为了划分这几种数据集,可以选择采用留出法、K-折交叉验证法或者自助法等多种方法。这些方法都对数据集有一些基本的假设,包括

    • 数据集是随机抽取且独立同分布的
    • 分布是平稳的,不会随时间发生变化
    • 始终从同一个分布中抽取样本

    陷阱:请勿对测试数据集进行训练。

    留出法

    留出法(hold-out)直接将数据集划分为互斥的集合,如通常选择 70% 数据作为训练集,30% 作为测试集。

    需要注意的是保持划分后集合数据分布的一致性,避免划分过程中引入额外的偏差而对最终结果产生影响。通常来说,单次使用留出法得到的结果往往不够稳定可靠,一般采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。

    K-折交叉验证法

    Kuhn 和 Johnson 在「Data Splitting Recommendations」中指出使用单独的「测试集」(或验证集)具有一定的局限性,包括

    • 测试集是对模型的单次评估,无法完全展现评估结果的不确定性。
    • 将大的测试集划分成测试集和验证集会增加模型性能评估的偏差。
    • 分割的测试集样本规模太小。
    • 模型可能需要每一个可能存在的数据点来确定模型值。
    • 不同测试集生成的结果不同,这造成测试集具备极大的不确定性。
    • 重采样方法可对模型在未来样本上的性能进行更合理的预测。

    所以在实际应用中,可以选择 K-折交叉验证(k-fold cross-validation)的方式来评估模型,其偏差低、性能评估变化小。

    K-折交叉验证法将数据集划分为 k 个大小相似的互斥子集,并且尽量保证每个子集数据分布的一致性。这样,就可以获取 k 组训练 - 测试集,从而进行 k 次训练和测试。

    k 通常取值 10,此时称为 10 折交叉验证。其他常用的 k 值还有 5、20 等。

    自助法

    自助法(bootstrap method)以自助采样法为基础:每次随机的从初始数据 $D$ 中选择一个样本拷贝到结果数据集 $D'$ 中,样本再放回初始数据 $D$ 中;这样重复 $m$ 次,就得到了含有 $m$ 个样本的数据集 $D'$。这样就可以把 $D'$ 作为训练集,而 D\D'​作为测试集。这样,样本在 m 次采样中始终不被采集到的概率为

    \lim_{m\to\infty} (1-\frac{1}{m})^{m} = 1/e = 0.368lim​m→∞​​(1−​m​​1​​)​m​​=1/e=0.368

    自助法的性能评估变化小,在数据集小、难以有效划分数据集时很有用。另外,自助法也可以从初始数据中产生多个不同的训练集,对集成学习等方法有好处。

    然而,自助法产生的数据集改变了初始数据的分布,会引入估计偏差。因而,数据量足够时,建议使用留出法和交叉验证法。

     

    展开全文
  • 梳理大纲: 数据拆分&评价结果 【1】数据拆分:训练数据集&测试数据集 【2】评价分类结果:精准度、混淆矩阵、精准率、召回率、F1 Score、ROC曲线等 【3】评价回归结果:MSE、RMSE、MAE、R Squared 参考...
  • 前提:机器学习就是从数据中自动分析获得规律,并利用规律对未知数据进行预测。换句话说,我们的模型一定是要经过样本数据对其进行训练,才可以对未知数据进行预测的。 问题:我们得到数据后,是否将数据全部用来...
  • MLDataUtils.jl:用于生成,加载,拆分和处理机器学习数据集的实用程序包
  • 数据拆分为训练数据集和测试数据集: 注意:不能简单将X的前N个数据集作为训练数据集,因为目标值y是排好序的,如[0, 0, ..., 1, 1, ..., 2, 2, ...],只能取到一定值。 方法:先对原始数据进行乱序化处理,再...
  • 机器学习笔记3-拆分数据集和训练集

    千次阅读 2017-04-02 16:56:01
    拆分数据集和训练集 from sklearn import cross_validation # for version 0.17 # For version 0.18 # from sklearn.model_selection import train_test_split ### set the random_state to 0 and the test_size ...
  • 根据上节机器学习 -- KNN算法(数据集的拆分),这里实现数据拆分函数化的实现,以及计算预测准确率。 1. 首先需要导入需要的模块和包: import numpy as np from sklearn import datasets from knn import ...
  • 今天是机器学习专题第28篇文章,我们来聊聊SVD算法。SVD的英文全称是Singular Value Decomposition,翻译过来是奇异值...在机器学习当中也有很多领域用到了这个算法,比如推荐系统、搜索引擎以及数据压缩等等。SVD简...
  • 前些天在100-Days-Of-ML...出于严谨性,本篇文章是从机器学习-数据挖掘方面进行数据拆分与特征缩放的顺序问题阐述,同时也欢迎大家一起讨论这个问题。 问题阐述 关于数据拆分与特征缩放的顺序先后问题,一般会在工...
  • 算法分类 监督学习 特征值 + 目标值 -分类 目标值是离散数据 -回归 目标值是连续数据 ...数据拆分: sklearn.model_selection.train_test_split sklearn数据集 sklearn.datasets -小规模数据...
  • 机器学习——数据

    2020-08-13 15:51:35
    机器学习——数据篇一、数据集二、探索性数据分析2.1 操作步骤简述2.1.1 描述性统计2.1.2 数据可视化2.1.3 数据整形2.2 代码部分2.2.1 箱型图2.2.2 2. 相关热图三、数据预处理3.1 常规操作简述3.2 sklearn模块3.3 ...
  • 深度学习数据拆分打乱

    千次阅读 2019-01-15 18:04:04
    传统的机器学习,即在深度学习流行之前的问题的一般处理流程通常是“预处理->特征变换->分类/回归”。即便现在深度学习似乎要统治业界,但要转换成这样的步骤,也不过是将“特征变换”与“分类/回归”...
  • 如何评价模型的好坏1 数据拆分2 分类算法的评价2.1混淆矩阵2.2 精准率和召回率2.3 精准率和召回率更关注哪个3 ROC...机器学习中,通常将所有的数据划分为三份:训练数据集、验证数据集和测试数据集。 训练数据集(t...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 428
精华内容 171
关键字:

数据拆分机器学习