也许这是一个愚蠢的问题,但我不明白下面代码中的函数cross_val_score给出的错误.也许答案是X样本的格式,看到这正是崩溃消息中显示的内容,但我不知道如何修复.这是我项目中的一段代码,带有一些随机值.

import numpy as np

from sklearn import mixture,cross_validation

np.random.seed(0)

n_samples = 300

C = np.array([[0., -0.7], [3.5, .7]])

X = np.r_[np.dot(np.random.randn(n_samples, 2), C),

np.random.randn(n_samples, 2) + np.array([20, 20])]

clf = mixture.GMM(n_components=2, covariance_type='full')

score = cross_validation.cross_val_score(clf, X)

给我错误:

ValueError: scoring must return a number, got () instead

我认为这可能是scikit中的一个问题. cross_val_score最终调用score函数,无论估计器传递给它.通常,得分(例如在KMeans中)为

returns a float.当KMeans估算器传递给cross_val_score时,一切都很好:

>>> clf = cluster.KMeans()

>>> score = cross_validation.cross_val_score(clf, X)

# (no error)

注意得分的返回类型:

>>> clf = cluster.KMeans()

>>> clf.fit(X)

>>> type(clf.score(X))

numpy.float64

在GMM和array is returned上调用得分时.

>>> clf = mixture.GMM()

>>> clf.fit(X)

>>> type(clf.score(X))

numpy.ndarray

因为cross_val_score依赖于clf.score()返回一个浮点数,所以你看到的错误信息是有意义的.

解决方法是为您自己的得分手提供cross_val_score.例如,要获取GMM.score()返回的分数的平均值,请创建此评分函数:

>>> scorer = lambda est, data: np.mean(est.score(data))

然后你可以将这个得分手作为参数传递给cross_val_score:

>>> score = cross_validation.cross_val_score(clf, X, scoring=scorer)

这可以避免错误,我认为应该或多或少地做你正在寻找的东西.我不确定平均值是否必然是总结得分的最佳方式,尽管它似乎足够合理.但是从这里你可以定义自己的方法.

python中score_在Python中“得分必须返回一个数字”scikit-learn中的cross_val_score错误...相关推荐

  1. python writerow 返回值_python – .writerow()csv返回一个数字而不是写行

    我正在使用Python 3测试一些非常简单的代码.出于某种原因,下面的代码生成一个空输出,而不是写一行 import csv output = open('hello world.csv', 'w', ...

  2. 课堂练习:返回一个二维数组中最大子数组的和

    1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...

  3. [小白向]Python使用request库调用API并获取返回的JSON数据包中的内容

    目录 对于参数可以直接写入链接中的接口(适用于参数较少时) 对于参数需要使用字典进行携带的接口(适用于请求头中参数较多时) 本文介绍了使用GET的方式调用API的方式,如需要使用POST方式,将代码中 ...

  4. python获取字符串第一个字母_Python3基础 字符串 capitalize 返回一个新的字符串,它的第一个字母大写...

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体. ------------------------------------- ...

  5. pta数据结构实验在数组中查找指定元素_如何从一个数组中查找指定的元素,并返回这个元素在数组中的位置...

    展开全部 和Vector都是使用Objec的数组形式来存储的.当你向这两种类型中增加元素的时候,如果元素的数目超出e68a84e8a2ad62616964757a686964616f313332646 ...

  6. java中怎么让一个数倒转_java 输入一个数字,反转输出这个数字的值(实现方法)

    java 输入一个数字,反转输出这个数字的值(实现方法) 如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public ...

  7. 返回一个一维整数数组中最大子数组的和02

    一,要求 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值 二,设 ...

  8. matlab矩阵除以一个数字,matlab矩阵中每一行数除以一个数 | 学步园

    例如:用a中每一行数除以x中相对应的每一个数 x=[5 10 6 8 16 6 8 8 22 11]; a=[4 4 4 5 4 4 4 4 3 4 6 8 6 2 6 8 8 6 8 6 4 4 4 ...

  9. 按规律插入一个数字到数组中

    根据控制台的文本提示输入一个数,程序会把这个数按照规律插入到原来已经存在的数组中,并且会输出此数组. 结果演示 代码展示 package com.five;import java.util.Scann ...

最新文章

  1. 每30秒学会一个Python小技巧,GitHub星数4600+
  2. 卷积神经网络的体系结构
  3. Day20 Ajax
  4. Javascript cookie使用详解
  5. hk.module must be initialized inside an hk.transform
  6. Android 消息推送
  7. 20150720 Two heads are better than one
  8. hdu2203 KMP水的问题
  9. 最近幻影的两个ARP欺骗工具 挺不错的
  10. 计算机网络运输层的概述,计算机网络_运输层
  11. linux下的pdf分割合并软件
  12. 【codevs3147】矩阵乘法2,”名“不副”实“
  13. 最长回文子串--动态规划
  14. Head First设计模式整理
  15. php 定时微博代码,8款主流定时微博工具
  16. orcad元件封装制作
  17. 数据结构与算法:二路归并排序(合并排序)
  18. [1]Mpush架构图及源码分析
  19. html页面设置document类型,htmldocument类型
  20. 第1章 弗洛依德——精神分析

热门文章

  1. oracle oid 10G
  2. Android与iOS/WP8跨平台整合设计与开发_专栏
  3. 图解使用Win8Api进行Metro风格的程序开发十二----上下文菜单
  4. Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之一
  5. Linux 命令(88)—— more 命令
  6. 《C++ 进阶心法》书籍修正记录
  7. select获取下拉框的值 下拉框默认选中
  8. node.js之第一天
  9. [BZOJ1968][AHOI2005]COMMON约数研究 数学
  10. Oracle 11g数据库详细安装步骤图解