python中score_在Python中“得分必须返回一个数字”scikit-learn中的cross_val_score错误...
也许这是一个愚蠢的问题,但我不明白下面代码中的函数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错误...相关推荐
- python writerow 返回值_python – .writerow()csv返回一个数字而不是写行
我正在使用Python 3测试一些非常简单的代码.出于某种原因,下面的代码生成一个空输出,而不是写一行 import csv output = open('hello world.csv', 'w', ...
- 课堂练习:返回一个二维数组中最大子数组的和
1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...
- [小白向]Python使用request库调用API并获取返回的JSON数据包中的内容
目录 对于参数可以直接写入链接中的接口(适用于参数较少时) 对于参数需要使用字典进行携带的接口(适用于请求头中参数较多时) 本文介绍了使用GET的方式调用API的方式,如需要使用POST方式,将代码中 ...
- python获取字符串第一个字母_Python3基础 字符串 capitalize 返回一个新的字符串,它的第一个字母大写...
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体. ------------------------------------- ...
- pta数据结构实验在数组中查找指定元素_如何从一个数组中查找指定的元素,并返回这个元素在数组中的位置...
展开全部 和Vector都是使用Objec的数组形式来存储的.当你向这两种类型中增加元素的时候,如果元素的数目超出e68a84e8a2ad62616964757a686964616f313332646 ...
- java中怎么让一个数倒转_java 输入一个数字,反转输出这个数字的值(实现方法)
java 输入一个数字,反转输出这个数字的值(实现方法) 如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public ...
- 返回一个一维整数数组中最大子数组的和02
一,要求 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值 二,设 ...
- 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 ...
- 按规律插入一个数字到数组中
根据控制台的文本提示输入一个数,程序会把这个数按照规律插入到原来已经存在的数组中,并且会输出此数组. 结果演示 代码展示 package com.five;import java.util.Scann ...
最新文章
- 每30秒学会一个Python小技巧,GitHub星数4600+
- 卷积神经网络的体系结构
- Day20 Ajax
- Javascript cookie使用详解
- hk.module must be initialized inside an hk.transform
- Android 消息推送
- 20150720 Two heads are better than one
- hdu2203 KMP水的问题
- 最近幻影的两个ARP欺骗工具 挺不错的
- 计算机网络运输层的概述,计算机网络_运输层
- linux下的pdf分割合并软件
- 【codevs3147】矩阵乘法2,”名“不副”实“
- 最长回文子串--动态规划
- Head First设计模式整理
- php 定时微博代码,8款主流定时微博工具
- orcad元件封装制作
- 数据结构与算法:二路归并排序(合并排序)
- [1]Mpush架构图及源码分析
- html页面设置document类型,htmldocument类型
- 第1章 弗洛依德——精神分析
热门文章
- oracle oid 10G
- Android与iOS/WP8跨平台整合设计与开发_专栏
- 图解使用Win8Api进行Metro风格的程序开发十二----上下文菜单
- Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之一
- Linux 命令(88)—— more 命令
- 《C++ 进阶心法》书籍修正记录
- select获取下拉框的值 下拉框默认选中
- node.js之第一天
- [BZOJ1968][AHOI2005]COMMON约数研究 数学
- Oracle 11g数据库详细安装步骤图解