美文网首页
交叉验证

交叉验证

作者: dechuan | 来源:发表于2017-04-10 13:54 被阅读0次

对于线性回归:
方法一:以前的cross validation中有一种方法是train/test split,现在挪到model_selection库中,randomly partition the data into training and test sets, by default, 25 percent of the data is assigned to the test set。这种方法只能得到一次划分结果的评估结果,不准确。

score算的是r-squared系数,好像score和cross_val_score默认算的就是r-squared系统

// from sklearn.model_selection import train_test_split
// X_train,X_test,y_train,y_test=train_test_split(X,y)
// model=LinearRegression()
// model.fit(X,y)
// model.score(X_test,y_test)

方法二:用model_selection库中的cross_val_score
// from sklearn.model_selection import cross_val_score
// model=LinearRegression()
// scores=cross_val_score(model,X,y,cv=5)

cv=5表示cross_val_score采用的是k-fold cross validation的方法,重复5次交叉验证

实际上,cross_val_score可以用的方法有很多,如kFold, leave-one-out, ShuffleSplit等,举例而言:

//cv=ShuffleSplit(n_splits=3,test_size=0.3,random_state=0)
//cross_val_score(model, X,y, cv=cv)

对于逻辑回归:
逻辑回归用于处理分类问题,线性回归求解how far it was from the decision boundary(求距离)的评估方式明显不适合分类问题。
The most common metrics are accuracy, precision, recall, F1 measure, true negatives, false positives and false negatives
1、计算confusion matrix
Confusion matrix 由 true positives, true negatives, false positives以及 false negatives组成。
// confusion_matrix=confusion_matrix(y_test, y_pred)
2、accuracy: measures a fraction of the classifier's predictions that are correct.
// accuracy_score(y_true,y_pred)
LogisticRegression.score() 默认使用accuracy
3、precision: 比如说我们预测得了cancer中实际确实得病的百分比
// classifier=LogisticRegression()
// classifier.fit(X_train,y_train)
// precisions= cross_val_score(classifier, X_train,y_train,cv=5,scoring='precision')
4、recall: 比如说实际得了cancer,被我们预测出来的百分比
// recalls= cross_val_score(classifier,X_train,y_train,cv=5,scoring='recall')
5、precision和recall之间是一个trade-off的关系,用F1score来表征性能,F1score越高越好
// fls=cross_val_score(classifier, X_train, y_train, cv=5,scoring='f1')
6、ROC曲线和AUC的值
ROC曲线的横坐标为false positive rate(FPR),纵坐标为true positive rate(TPR)
AUC数值=ROC曲线下的面积
// classifier=LogisticRegression()
// classifier.fit(X_train, y_train)
// predictions = classifier.predict_proba(X_test)
// false_positive_rate, recall, thresholds = roc_curve(y_test, predictions[:,1])
// roc_auc=auc(false_positive_rate, recall)

相关文章

  • 深度学习知识点汇总-机器学习基础(15)

    2.15 交叉验证和k折交叉验证 交叉验证是为了提高模型的泛华能力。 方法主要有: 留一交叉验证 k折交叉验证 这...

  • 机器学习笔记(一)——交叉验证

    交叉验证问题 什么是交叉验证     交叉验证是在机器学习建立模型和验证模型参数时常用的办法。交叉验证,顾名思义,...

  • 嵌套交叉验证(Nested cross-validation)

    传统交叉验证和嵌套交叉验证的区别 在开始分享嵌套交叉验证前,首先以K-Fold为例,区分K-Fold交叉验证和嵌套...

  • 十一、交叉验证和网格搜索

    1交叉验证 1)评估方法一般有留出法,交叉验证法,自助法,这里我们介绍交叉验证法。2)k折交叉验证法:将数据集D划...

  • 算法笔记(20)交叉验证及Python代码实现

    常用交叉验证法包括K折叠交叉验证法(K-fold cross validation)、随机拆分交叉验证法(shuf...

  • 交叉验证

    1. 既有趣、又有益的交叉验证 validate your machine learning in a bette...

  • 交叉验证

    交叉验证 问题 我们在训练数据的时候通常把原数据分成 训练集以及测试集两份。当我们使用训练集训练出模型后再使用测试...

  • 交叉验证

    1、为什么要进行交叉验证? 目的:为了得到可靠稳定的模型 交叉验证是一种模型选择方法,其将样本的一部分用于训练,另...

  • 交叉验证

    为什么使用交叉验证? 在许多实际应用中数据是不充足的。交叉验证的基本思想:重复的使用数据。把给定的数据进行切分,将...

  • 交叉验证

    交叉验证 (Cross validation) 有时亦称循环估计, 是用来验证分类器的性能的一种统计分析方法。它用...

网友评论

      本文标题:交叉验证

      本文链接:https://www.haomeiwen.com/subject/mwzgnttx.html