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】:

假设您的特征空间是 lengthwidthheight,并且您有 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参数设置的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn 中的随机森林解释

scikit-learn 中的 DBSCAN(仅使用指标)

scikit-learn 中的不平衡

混淆矩阵中的 Scikit-learn 变化阈值

GradientBoostingClassifier 与 scikit-learn 中的 BaseEstimator?

如何修复 scikit-learn 中的令牌模式?