标签: cross-validation

交叉验证和网格搜索有什么区别?

简单来说,交叉验证和网格搜索有什么区别?网格搜索如何工作?我应该首先进行交叉验证然后进行网格搜索吗?

definition cross-validation difference grid-search

43
推荐指数
3
解决办法
5万
查看次数

scikit-learn交叉验证,负值与均方误差

当我使用以下代码与X大小(952,144)的数据矩阵和y大小(952)的输出向量时,mean_squared_error度量返回负值,这是意外的.你有什么主意吗?

from sklearn.svm import SVR
from sklearn import cross_validation as CV

reg = SVR(C=1., epsilon=0.1, kernel='rbf')
scores = CV.cross_val_score(reg, X, y, cv=10, scoring='mean_squared_error')
Run Code Online (Sandbox Code Playgroud)

scores然后所有的值都是负数.

python regression scikit-learn cross-validation

40
推荐指数
1
解决办法
3万
查看次数

在sklearn中StratifiedKFold和StratifiedShuffleSplit之间的区别

从标题我想知道它们之间有什么区别

StratifiedKFold,参数shuffle = True

StratifiedKFold(n_splits=10, shuffle=True, random_state=0)
Run Code Online (Sandbox Code Playgroud)

StratifiedShuffleSplit

StratifiedShuffleSplit(n_splits=10, test_size=’default’, train_size=None, random_state=0)
Run Code Online (Sandbox Code Playgroud)

使用StratifiedShuffleSplit有什么好处

python scikit-learn cross-validation

40
推荐指数
3
解决办法
2万
查看次数

如何在GridSearchCV(随机森林分类器Scikit)上获得最佳估算器

我正在运行GridSearch CV来优化scikit中分类器的参数.一旦完成,我想知道哪些参数被选为最佳参数.

每当我这样做,我得到一个AttributeError: 'RandomForestClassifier' object has no attribute 'best_estimator_',并且不知道为什么,因为它似乎是文档的合法属性.

from sklearn.grid_search import GridSearchCV

X = data[usable_columns]
y = data[target]

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True) 

param_grid = {
    'n_estimators': [200, 700],
    'max_features': ['auto', 'sqrt', 'log2']
}

CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 5)

print '\n',CV_rfc.best_estimator_
Run Code Online (Sandbox Code Playgroud)

产量:

`AttributeError: 'GridSearchCV' object has no attribute 'best_estimator_'
Run Code Online (Sandbox Code Playgroud)

python random-forest scikit-learn cross-validation

37
推荐指数
2
解决办法
7万
查看次数

如何在带有朴素贝叶斯分类器和NLTK的scikit中使用k-fold交叉验证

我有一个小语料库,我想用10倍交叉验证来计算朴素贝叶斯分类器的准确性,怎么做呢.

python nltk scikit-learn cross-validation naivebayes

29
推荐指数
3
解决办法
5万
查看次数

如何从CrossValidatorModel中提取最佳参数

我想ParamGridBuilder在Spark 1.4.x中找到CrossValidator中最佳模型的参数,

在Spark文档中的Pipeline示例中,它们通过在管道中使用来添加不同的参数(numFeatures,regParam)ParamGridBuilder.然后通过以下代码行创建最佳模型:

val cvModel = crossval.fit(training.toDF)
Run Code Online (Sandbox Code Playgroud)

现在,我想知道从中产生最佳模型的参数(numFeatures,regParam)是什么ParamGridBuilder.

我已经使用了以下命令但没有成功:

cvModel.bestModel.extractParamMap().toString()
cvModel.params.toList.mkString("(", ",", ")")
cvModel.estimatorParamMaps.toString()
cvModel.explainParams()
cvModel.getEstimatorParamMaps.mkString("(", ",", ")")
cvModel.toString()
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

提前致谢,

pipeline scala cross-validation apache-spark apache-spark-mllib

27
推荐指数
2
解决办法
1万
查看次数

使用explict(预定义)验证集进行网格搜索和sklearn

我有一个数据集,以前分为3组:训练,验证和测试.必须使用这些集合以便比较不同算法的性能.

我现在想使用验证集优化我的SVM的参数.但是,我无法找到如何明确输入验证集sklearn.grid_search.GridSearchCV().下面是我之前用于在训练集上进行K折叠交叉验证的一些代码.但是,对于这个问题,我需要使用给定的验证集.我怎样才能做到这一点?

from sklearn import svm, cross_validation
from sklearn.grid_search import GridSearchCV

# (some code left out to simplify things)

skf = cross_validation.StratifiedKFold(y_train, n_folds=5, shuffle = True)
clf = GridSearchCV(svm.SVC(tol=0.005, cache_size=6000,
                             class_weight=penalty_weights),
                     param_grid=tuned_parameters,
                     n_jobs=2,
                     pre_dispatch="n_jobs",
                     cv=skf,
                     scoring=scorer)
clf.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)

python validation scikit-learn cross-validation

27
推荐指数
4
解决办法
9553
查看次数

模块'sklearn'没有属性'cross_validation'

我试图将我的数据集拆分为训练和测试数据集,但我收到此错误:

X_train,X_test,Y_train,Y_test = sklearn.cross_validation.train_test_split(X,df1['ENTRIESn_hourly'])
Run Code Online (Sandbox Code Playgroud)
AttributeError                            Traceback (most recent call last)
<ipython-input-53-5445dab94861> in <module>()
----> 1 X_train,X_test,Y_train,Y_test = sklearn.cross_validation.train_test_split(X,df1['ENTRIESn_hourly'])

AttributeError: module 'sklearn' has no attribute 'cross_validation'
Run Code Online (Sandbox Code Playgroud)

我怎么处理这个?

python scikit-learn cross-validation

27
推荐指数
2
解决办法
3万
查看次数

如何在sklearn中实现前进测试?

在sklearn中,GridSearchCV可以将管道作为参数,通过交叉验证找到最佳估算器.但是,通常的交叉验证是这样的:在此输入图像描述

为了交叉验证时间序列数据,训练和测试数据经常被拆分为:在此输入图像描述

也就是说,测试数据应始终领先于训练数据.

我的想法是:

  1. 编写我自己的k-fold版本类并将其传递给GridSearchCV,这样我就可以享受管道的便利.问题是让GridSearchCV使用指定的训练和测试数据指数似乎很困难.

  2. 写一个新类GridSearchWalkForwardTest,它类似于GridSearchCV,我正在研究源代码grid_search.py​​并发现它有点复杂.

任何建议都是受欢迎的.

python time-series scikit-learn cross-validation

26
推荐指数
2
解决办法
5216
查看次数

如何在sklearn上平衡训练集和测试集上的数据

我正在使用sklearn进行多分类任务.我需要将alldata拆分为train_set和test_set.我想从每个班级中随机抽取相同的样本编号.实际上,我有趣的是这个功能

X_train, X_test, y_train, y_test = cross_validation.train_test_split(Data, Target, test_size=0.3, random_state=0)
Run Code Online (Sandbox Code Playgroud)

但它给出了不平衡的数据集!任何建议.

machine-learning svm scikit-learn cross-validation

24
推荐指数
3
解决办法
3万
查看次数