sklearn ShuffleSplit 出现“__init__() 获得参数 'n_splits' 的多个值”错误

2024-06-18

我正进入(状态

init() 获得参数“n_splits”的多个值

该行的错误:

cv = ShuffleSplit(n_splits = 10, test_size = 0.2, random_state = 0)

在下面的代码中:

import matplotlib.pyplot as pl
import numpy as np
import sklearn.model_selection as curves
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import ShuffleSplit, train_test_split, learning_curve

def ModelLearning(X, y):
    """ Calculates the performance of several models with varying sizes of training data.
        The learning and testing scores for each model are then plotted. """

    # Create 10 cross-validation sets for training and testing
    cv = ShuffleSplit(n_splits = 10, test_size = 0.2, random_state = 0)

    # Generate the training set sizes increasing by 50
    train_sizes = np.rint(np.linspace(1, X.shape[0]*0.8 - 1, 9)).astype(int)

    # Create the figure window
    fig = pl.figure(figsize=(10,7))

    # Create three different models based on max_depth
    for k, depth in enumerate([1,3,6,10]):

        # Create a Decision tree regressor at max_depth = depth
        regressor = DecisionTreeRegressor(max_depth = depth)

        # Calculate the training and testing scores
        sizes, train_scores, test_scores = learning_curve(regressor, X, y, \
           train_sizes = train_sizes,  cv = cv, scoring = 'r2')

        # Find the mean and standard deviation for smoothing
        train_std = np.std(train_scores, axis = 1)
        train_mean = np.mean(train_scores, axis = 1)
        test_std = np.std(test_scores, axis = 1)
        test_mean = np.mean(test_scores, axis = 1)

        # Subplot the learning curve 
        ax = fig.add_subplot(2, 2, k+1)
        ax.plot(sizes, train_mean, 'o-', color = 'r', label = 'Training Score')
        ax.plot(sizes, test_mean, 'o-', color = 'g', label = 'Testing Score')
        ax.fill_between(sizes, train_mean - train_std, \
            train_mean + train_std, alpha = 0.15, color = 'r')
        ax.fill_between(sizes, test_mean - test_std, \
            test_mean + test_std, alpha = 0.15, color = 'g')

        # Labels
        ax.set_title('max_depth = %s'%(depth))
        ax.set_xlabel('Number of Training Points')
        ax.set_ylabel('Score')
        ax.set_xlim([0, X.shape[0]*0.8])
        ax.set_ylim([-0.05, 1.05])

    # Visual aesthetics
    ax.legend(bbox_to_anchor=(1.05, 2.05), loc='lower left', borderaxespad = 0.)
    fig.suptitle('Decision Tree Regressor Learning Performances', fontsize = 16, y = 1.03)
    fig.tight_layout()
    fig.show()

我知道此错误通常表示参数顺序不正确,但这应该是正确的。这是 sklearn 文档中的示例:

rs = ShuffleSplit(n_splits=3, test_size=.25, random_state=0)

我还尝试删除 n_splits 参数,因为 10 无论如何都是默认值:

cv = ShuffleSplit(test_size = 0.2, random_state = 0)

这会产生相同的错误。

我正在将代码从 python 2.7 转换为 3.5,并将早期版本的 sklearn 转换为 0.18.1,所以我可能错过了一些东西,但我不知道它可能是什么。调用 ShuffleSplit 的行中的参数似乎也是按顺序排列的:

大小,train_scores,test_scores = Learning_curve(回归量,X,y,\ train_sizes = train_sizes,cv = cv,评分 = 'r2')

调用该函数的 X 和 y 可以在 python 2.7 中使用,所以它们也应该没问题。

追溯:

TypeError                                 Traceback (most recent call last)
<ipython-input-33-191abc15bbd7> in <module>()
      1 # Produce learning curves for varying training set sizes and maximum depths
----> 2 vs.ModelLearning(features, prices)

E:\Python\machine-learning-master\projects\boston_housing\visuals.py in ModelLearning(X, y)
     21 
     22     # Create 10 cross-validation sets for training and testing
---> 23     cv = ShuffleSplit(n_splits = 10, test_size = 0.2, random_state = 0)
     24 
     25     # Generate the training set sizes increasing by 50

TypeError: __init__() got multiple values for argument 'n_splits'

代替:

from sklearn.model_selection import ShuffleSplit

Use:

from sklearn.cross_validation import ShuffleSplit

您可能会得到相同的错误StratifiedShuffleSplit,再次使用cross_validation not model_selection.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sklearn ShuffleSplit 出现“__init__() 获得参数 'n_splits' 的多个值”错误 的相关文章

随机推荐

  • 如何在 Snowflake 中编写等效的 IF ELSE 即席 SQL 查询

    我正在尝试创建一个与以下基于 T SQL 的即席查询等效的 Snowflake T SQL version Declare i int 0 If i 0 PRINT 0 Else Begin PRINT 1 RETURN PRINT 2 E
  • 使用 Hibernate 防止 SQL 注入

    我正在使用 Hibernate 我知道你可以使用 HQL 来防止 SQL 注入 String query1 from Obj where id id String query2 from Obj where id id query1不安全
  • 使用 webkit 转换 Html 到 PDF

    从 Html 生成 PDF 时 webkit 转换不起作用 我需要将 div 旋转 45 度 使用 webkit 变换后 它在屏幕上看起来没问题 但使用 winnovatives Html 到 PDF 转换器时 输出是平坦的而不是旋转的 有
  • 订阅的角度替代方案?

    我使用的是异步订阅 因此计数器变量在更新之前被返回 是否有另一种订阅方法 允许我仅在计数器变量更新为从后端获取的值后才返回计数器变量 makeOffer product string offer number number let form
  • redux 和 React 中减速器的先前状态

    这是我的减速器的样子 export default function catalogReducer state initialState catalogItems action switch action type case types L
  • 将 HTML 转换为 Excel 的最佳方法是什么

    我有一个 HTML 页面 其中包含 Flash 图表 FusionCharts 和 HTML 表格 我需要将这整个事情转换成Excel HTML 表格应显示在 Excel 工作表的单元格中 Flash 图表可以显示为图像 我们可以使用任何开
  • 使用.NET Core 3.0添加swagger时出现异常

    我正在尝试将 swagger 融入ASP NET Core 3 0项目 它在中抛出异常ConfigureServices method 我在用Swashbuckle AspNetCore 4 0 1 我也检查过这个issue https s
  • TortoiseGit - 更改默认合并消息

    系统描述 Windows 7的 git版本2 10 1 windows 1 乌龟Git 2 3 0 0 I want 合并提交消息在不同的情况下有所不同fully自动方式 no manual amend Summary 在windows上
  • C# 控制台应用程序 - cmd.exe 挂起

    我在 Visual Studio 2013 中运行简单的 C 控制台应用程序时遇到问题 我的问题的详细信息 我成功运行控制台应用程序 默认的 按任意键继续 显示在最后 突然 它开始表现出不同的行为 并出现以下症状 一个新的命令窗口 cmd
  • android studio 和 netbeans 中输入扫描器和解析的不同行为

    我正在使用 NetBeans 测试基本代码 和 Android Studio 实际应用程序 读取相同的管道分隔文件 并得到不同的结果 这是有问题的代码 String URL http CalendarUTF8 Dec2016 txt try
  • Facebook C# SDK,用图片创建事件

    我想创建一个事件 但我只是不知道如何更改事件图片 我知道这是一个非常老的问题 但我仍然找不到任何解决方案 我很快就会放弃 请至少告诉我这是来自 Facebook 的错误还是其他任何东西 这是我的代码 Facebook FacebookCli
  • 正则表达式:如何匹配所有大于 954 的数字?

    I tried 0 9 d d 4 但它没有给出正确的结果 I 不会使用正则表达式因为你会陷入丑陋的模式链中 但是 如果仍然必须或想要使用它 您可以使用如下正则表达式 1 9 d 3 9 6 9 d 9 5 9 2 工作演示 https r
  • 如何在node.js中同步读取文件或Stream?

    请不要讲授关于我应该如何异步完成所有事情的讲座 有时我想以简单明显的方式做事 这样我就可以继续其他工作 由于某种原因 以下代码不起作用 它与我在 a 上找到的代码匹配最近的问题 https stackoverflow com questio
  • 如何在 apache Spark 作业中执行阻塞 IO?

    如果当我遍历 RDD 时 我需要通过调用外部 阻塞 服务来计算数据集中的值怎么办 您认为如何才能实现这一目标 值 Future RDD Double Future sequence tasks 我尝试创建一个 Futures 列表 但由于
  • 在 grails 中使用 mockDomain 时如何覆盖方法的逻辑?

    我想像往常一样模拟一个域 mockDomain Class 但我想覆盖域的方法之一 beforeDelete具体来说 仅针对该单元测试使用自定义逻辑 如何才能实现这一目标 您可以使用 Groovy 元类重写域类上的 beforeDelete
  • 在标准化数据库模式中是否可以有多个外键?

    Address addressID houseNumber postcode roadName city county Reservation reservationID roomNo leadGuestID guest2ID guest3
  • redux-observable 中的独立链取消?

    我是 RxJS 新手 在我的应用程序中 我需要独立取消延迟操作 Here s http jsbin com gayoti edit js output一个工作示例 延迟为 3 秒 但是当我选择删除多个项目并取消其中一项时 然后一次全部取消
  • 如何从重定向的查询字符串中删除项目?

    在我的基页中 我需要从查询字符串中删除一个项目并重定向 我不能使用 Request QueryString Remove foo 因为该集合是只读的 有没有什么方法可以获取查询字符串 除了该一项 而无需迭代集合并重新构建它 您可以通过处理原
  • 递增字母数字组合

    我偶然发现了这篇文章 如何在 PHP 中仅使用小写字母和数字来增加字母数字字符串 https stackoverflow com questions 42866349 how to increment alphanumeric string
  • sklearn ShuffleSplit 出现“__init__() 获得参数 'n_splits' 的多个值”错误

    我正进入 状态 init 获得参数 n splits 的多个值 该行的错误 cv ShuffleSplit n splits 10 test size 0 2 random state 0 在下面的代码中 import matplotlib