scikit-learn中的cross_val_score函数scoring参数设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scikit-learn中的cross_val_score函数scoring参数设置相关的知识,希望对你有一定的参考价值。
参考技术A scikit-learn中的cross_val_score函数可以通过交叉验证评估分数,非常方便,但是使用过程中发现一个问题,就是在cross_val_score的文档中对scoring的参数并没有说明清楚。原始文档如下:
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_score.html#sklearn.model_selection.cross_val_score
文档中对scoring参数是这样描述的:
scoring : string, callable or None, optional, default: None
A string (see model evaluation documentation) or a scorer callable object / function with signature scorer(estimator, X, y).
如果我们要指定一种评价参数,那怎么办呢?比如希望使用roc_auc来做评价指标,是不是写成cross_val_score(clf, X, y, scoring = 'roc_auc')就可以了呢?
其实关于scoring有另外一个文档做详细描述,我们只需要引用这里的指标即可:
参考文档:
https://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter
了解 scikit-learn 中的 DictVectorizer?
【中文标题】了解 scikit-learn 中的 DictVectorizer?【英文标题】:Understanding DictVectorizer in scikit-learn? 【发布时间】:2015-02-12 22:53:09 【问题描述】:我正在探索scikit-learn
提供的不同特征提取类。看了documentation 不是很明白DictVectorizer
可以用来做什么?其他问题浮现在脑海。例如,DictVectorizer
如何用于文本分类?即这个类如何帮助处理标记的文本数据?除了我已经在文档网页上阅读的example 之外,任何人都可以提供一个简短的示例吗?
【问题讨论】:
【参考方案1】:假设您的特征空间是 length、width 和 height,并且您有 3 个观察值;即您测量 3 个对象的长度、宽度和高度:
length width height
obs.1 1 0 2
obs.2 0 1 1
obs.3 3 2 1
另一种显示方式是使用字典列表:
['height': 1, 'length': 0, 'width': 1, # obs.2
'height': 2, 'length': 1, 'width': 0, # obs.1
'height': 1, 'length': 3, 'width': 2] # obs.3
DictVectorizer
反过来;即给定字典列表构建顶部框架:
>>> from sklearn.feature_extraction import DictVectorizer
>>> v = DictVectorizer(sparse=False)
>>> d = ['height': 1, 'length': 0, 'width': 1,
... 'height': 2, 'length': 1, 'width': 0,
... 'height': 1, 'length': 3, 'width': 2]
>>> v.fit_transform(d)
array([[ 1., 0., 1.], # obs.2
[ 2., 1., 0.], # obs.1
[ 1., 3., 2.]]) # obs.3
# height, len., width
【讨论】:
很好的解释。那么,DictVectorizer 所做的“简而言之”是将标记的观察结果向量化,而不管“字符串”标签是什么?以上是关于scikit-learn中的cross_val_score函数scoring参数设置的主要内容,如果未能解决你的问题,请参考以下文章