Sklearn 0.20+的交叉验证?

我在尝试进行交叉验证时遇到了一个错误,错误信息显示:“发现输入变量的样本数量不一致:[18, 1]”。

我使用pandas数据框架(df)中的不同列作为特征,最后一列作为标签。这些数据来源于加州大学欧文分校的机器学习数据集。当我导入之前使用过的交叉验证包时,我得到了一个错误提示,可能是该包已经废弃。我将要运行决策树、SVM和K-NN模型。

我的代码如下:

feature = [df['age'], df['job'], df['marital'], df['education'], df['default'], df['housing'], df['loan'], df['contact'],       df['month'], df['day_of_week'], df['campaign'], df['pdays'], df['previous'], df['emp.var.rate'], df['cons.price.idx'],       df['cons.conf.idx'], df['euribor3m'], df['nr.employed']]label = [df['y']]from sklearn.cross_validation import train_test_splitfrom sklearn.model_selection import cross_val_score# Model Training x = feature[:]y = labelx_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.5)

任何帮助都将不胜感激!


回答:

cross_validation模块已被废弃。新的model_selection模块已经取而代之。因此,您之前使用cross_validation所做的一切现在都可以在model_selection中找到。那么您的上述代码将变为:

feature = [df['age'], df['job'], df['marital'], df['education'], df['default'], df['housing'], df['loan'], df['contact'],       df['month'], df['day_of_week'], df['campaign'], df['pdays'], df['previous'], df['emp.var.rate'], df['cons.price.idx'],       df['cons.conf.idx'], df['euribor3m'], df['nr.employed']]label = [df['y']]from sklearn.model_selection import train_test_splitfrom sklearn.model_selection import cross_val_score

现在关于声明X和y的问题,为什么要将它们包装在列表中?只需这样使用它们:

feature = df[['age', 'job', 'marital', 'education', 'default', 'housing',               'loan', 'contact', 'month', 'day_of_week', 'campaign',               'pdays', 'previous', 'emp.var.rate', 'cons.price.idx',               'cons.conf.idx', 'euribor3m', 'nr.employed']]label = df['y']

然后您可以直接使用您的代码,而无需更改任何内容。

# Model Training x = feature[:]y = labelx_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.5)

关于您最后一个关于交叉验证中的折叠的问题,sklearn中有多个类可以完成这个任务(取决于任务)。请查看以下链接:

其中包含折叠迭代器。请记住,所有这些都在model_selection包中。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注