zoukankan      html  css  js  c++  java
  • Cross Validation 交叉验证

    传统的(F-measure)或平衡的(F-score) (F1 score)是精度和召回的调和平均值:

    (F_1 = 2 frac{precision*recall}{precision + recall})

    交叉验证

    cross validation大概的意思是:对于原始数据我们要将其一部分分为train_data,一部分分为test_data。train_data用于训练,test_data用于测试准确率。在test_data上测试的结果叫做validation_error。将一个算法作用于一个原始数据,我们不可能只做出随机的划分一次train和test_data,然后得到一个validation_error,就作为衡量这个算法好坏的标准。因为这样存在偶然性。我们必须好多次的随机的划分train_data和test_data,分别在其上面算出各自的validation_error。这样就有一组validation_error,根据这一组validation_error,就可以较好的准确的衡量算法的好坏。

    cross validation是在数据量有限的情况下的非常好的一个evaluate performance的方法。而对原始数据划分出train data和test data的方法有很多种,这也就造成了cross validation的方法有很多种。

    带乱序的

    使用下面的公式可以进行5折交叉验证,cross_val_score函数是进行交叉验证并计算出Validation_score的,但是其中的cross validation并没有打乱原始数据的顺序,所以使用Kfold函数构建cv变量,传递给cross_val_score的cv参数,其中scoring参数可以指定计算准确率的方式

    #Validation function
    n_folds = 5
    
    def rmsle_cv(model):
        kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(train.values)
        rmse= np.sqrt(-cross_val_score(model, train.values, y_train, scoring="neg_mean_squared_error", cv = kf))
        return(rmse)
    
  • 相关阅读:
    abstract关键字
    方法重写
    对象初始化过程
    访问修饰符
    super关键字
    继承
    转发和重定向的区别
    tomcat中乱码问题解决
    jsp执行过程
    web程序常见错误及解决方法
  • 原文地址:https://www.cnblogs.com/drawon/p/8520629.html
Copyright © 2011-2022 走看看