小编ogr*_*sel的帖子

为什么Scikit GradientBoostingClassifier不允许我使用最小二乘回归?

为什么会这样呢?

GradientBoostingClassifier(loss='ls')
Run Code Online (Sandbox Code Playgroud)

失败了:

raise ValueError("``n_classes`` must be 1 for regression")
ValueError: ``n_classes`` must be 1 for regression
Run Code Online (Sandbox Code Playgroud)

它与...完美配合loss='deviance'

我在Ubuntu 64位中使用scikit-learn-0.11和scipy-0.11.0rc1这发生了对二进制类'YES''NO'的数据集进行分类.

python data-mining scikit-learn

6
推荐指数
1
解决办法
1421
查看次数

如何在IPython.parallel中使用交互式定义的类?

上下文

在连接到集群中的笔记本电脑的交互原型开发,我想定义一个类,无论是在客户端可用的__main__会话,并通过传递这样的情况下围绕集群引擎节点上交互方式更新到能够移动该类的实例LoadBalanced视图的参数.以下演示了典型的用户会话:

首先设置并行集群环境:

>>> from IPython.parallel import Client
>>> rc = Client()
>>> lview = rc.load_balanced_view()
>>> rc[:]
<DirectView [0, 1, 2]>
Run Code Online (Sandbox Code Playgroud)

在笔记本单元格中,让我们定义我们交互式编辑的组件的代码片段:

>>> class MyClass(object):
...     def __init__(self, parameter):
...         self.parameter = parameter
...
...     def update_something(self, some_data):
...         # do something smart here with some_data & internal state
...
...     def compute_something(self, other_data):
...         # do something smart here with other data & internal state
...         return something
...
Run Code Online (Sandbox Code Playgroud)

在下一个单元格中,让我们创建一个脚本来构建此类的实例,然后使用集群环境的负载平衡视图来评估各种输入参数上的组件:

>>> def process(obj, some_data, other_data):
... …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing ipython ipython-notebook

6
推荐指数
1
解决办法
4589
查看次数

Scikits-learn:将自定义词汇与Pipeline一起使用

在我的scikits-learn Pipeline中,我想将自定义词汇表传递给CountVectorizer():

text_classifier = Pipeline([
    ('count', CountVectorizer(vocabulary=myvocab)),
    ('tfidf', TfidfTransformer()),
    ('clf', LinearSVC(C=1000))
])
Run Code Online (Sandbox Code Playgroud)

但是,据我所知,据我所知

text_classifier.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)

Pipeline使用CountVectorizer()的fit_transform()方法,它忽略了myvocab.我怎么能修改我的管道来使用myvocab?谢谢!

python machine-learning scikits scikit-learn

5
推荐指数
1
解决办法
1899
查看次数

F1 小于 Scikit-learn 中的精度和召回率

我正在做多类分类,类别不平衡。

我注意到 f1 总是小于精度和召回率的直接调和平均值,在某些情况下,f1 甚至小于精度和召回率。

仅供参考,我要求metrics.precision_score(y,pred)精确等等。

我知道微观/宏观平均值的差异,并通过使用precision_recall_fscore_support().

不确定这是由于使用了宏观平均还是其他一些原因?


更新详细结果如下:

n_samples: 75, n_features: 250

MultinomialNB(alpha=0.01, fit_prior=True)

2倍简历:

第一次运行:

F1:        0.706029106029
Precision: 0.731531531532
Recall:    0.702702702703

         precision    recall  f1-score   support

      0       0.44      0.67      0.53         6
      1       0.80      0.50      0.62         8
      2       0.78      0.78      0.78        23

avg / total       0.73      0.70      0.71        37
Run Code Online (Sandbox Code Playgroud)

第二次运行:

F1:        0.787944219523
Precision: 0.841165413534
Recall:    0.815789473684

         precision    recall  f1-score   support

      0       1.00      0.29      0.44         7
      1       0.75      0.86      0.80         7
      2       0.82      0.96      0.88        24

avg …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikits scikit-learn

5
推荐指数
1
解决办法
3174
查看次数

python/scikit-learn中距离计算的稀疏实现

我有一个大的(100K×30K)和svmlight格式的(非常)稀疏数据集,我按如下方式加载:

import numpy as np
from scipy.cluster.vq import kmeans2
from scipy.spatial.distance import pdist, squareform
from sklearn.datasets import load_svmlight_file

X,Y = load_svmlight_file("somefile_svm.txt")
Run Code Online (Sandbox Code Playgroud)

它返回一个稀疏的scipy数组X.

我只需要计算所有训练点的成对距离

D = pdist(X)
Run Code Online (Sandbox Code Playgroud)

不幸的是,scipy.spatial.distance中的距离计算实现仅适用于密集矩阵.由于数据集的大小,使用pdist作为不可行

D = pdist(X.todense())
Run Code Online (Sandbox Code Playgroud)

任何有关此问题的稀疏矩阵距离计算实现或变通方法的指针都将非常受欢迎.

非常感谢

python machine-learning scikits scikit-learn

5
推荐指数
1
解决办法
2020
查看次数

如何在sklearn中的集合分类器中使用自定义分类器?

我读到sklearn中的内置集合方法使用决策树作为基本分类器.是否可以使用自定义分类器?

nlp machine-learning scikits scikit-learn

5
推荐指数
1
解决办法
1572
查看次数

在sklearn中保留数据

我正在使用scikit-learn来集中文本文档.我正在使用CountVectorizer,TfidfTransformer和MiniBatchKMeans这两个类来帮助我做到这一点.新文本文档一直添加到系统中,这意味着我需要使用上面的类来转换文本并预测集群.我的问题是:我应该如何将数据存储在磁盘上?我应该简单地挑选矢量化器,变换器和kmeans对象吗?我应该保存数据吗?如果是这样,我如何将它添加回矢量器,变换器和kmeans对象?

任何帮助将不胜感激

python machine-learning data-mining scikit-learn

5
推荐指数
1
解决办法
2660
查看次数

scikit-image 将图像保存为字节串

我正在使用scikit-image读取图像:

img = skimage.io.imread(filename)
Run Code Online (Sandbox Code Playgroud)

对 进行一些操作后img,我想将它保存到内存文件(a la StringIO)以传递给另一个函数,但它看起来skimage.io.imsave需要文件名,而不是文件句柄。

imsave如果可能的话,我想避免击中磁盘(然后从另一个成像库读取)。有没有一种很好的方法来使用imsave(或其他一些 scikit-image-friendly 功能)StringIO

python in-memory stringio scikit-image

5
推荐指数
1
解决办法
2741
查看次数

sklearn(scikit-learn)逻辑回归包 - 设置训练的分类系数.

所以我读了scikit-learn包webpate:

http://scikit-learn.sourceforge.net/dev/modules/generated/sklearn.linear_model.LogisticRegression.html

我可以使用逻辑回归来拟合数据,在获得LogisticRegression实例后,我可以使用它来对新数据点进行分类.到现在为止还挺好.

有没有办法设置LogisticRegression()实例的系数?因为在我获得训练的系数后,我想使用相同的API来分类新的数据点.

或者也许其他人推荐另一个拥有更好API的python机器学习包?

谢谢

python machine-learning scikits scikit-learn

4
推荐指数
2
解决办法
1万
查看次数

Python scikits - 缓冲区的维数错误(预期1,得2)

我正在尝试此代码段.我正在使用scikits.learn 0.8.1

from scikits.learn import linear_model
import numpy as np
num_rows = 10000
X = np.zeros([num_rows,2])
y = np.zeros([num_rows,1])
# assume here I have filled in X and y appropriately with 0s and 1s from the dataset
clf = linear_model.LogisticRegression()
clf.fit(X, y)
Run Code Online (Sandbox Code Playgroud)

我得到了这个 - >

/usr/local/lib/python2.6/dist-packages/scikits/learn/svm/liblinear.so in scikits.learn.svm.liblinear.train_wrap (scikits/learn/svm/liblinear.c:992)()

ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
Run Code Online (Sandbox Code Playgroud)

这里有什么问题?

python regression numpy scikits scikit-learn

3
推荐指数
1
解决办法
1万
查看次数

scikit-learn CART字符串数据

您是否能够使用字符串数据训练DecisionTreeClassifier?

当我尝试使用String数据时,我得到一个ValueError:无法将转换器字符串浮动

clf = DecisionTreeClassifier()
clf.fit([['asdf', '1'], ['asdf', '0']], ['2', '3'])

python machine-learning scikit-learn

3
推荐指数
1
解决办法
2155
查看次数

使用 sklearn 找出错误率

我想在 python 中使用 svm 分类器找出错误率,我采取的方法是:

  1-svm.predict(test_samples).mean()
Run Code Online (Sandbox Code Playgroud)

但是,这种方法不起作用。sklearn 的评分函数也给出了平均准确度......但是,我不能使用它,因为我想完成交叉验证,然后找到错误率。请在 sklearn 中建议一个合适的函数来找出错误率。

python machine-learning svm scikits scikit-learn

2
推荐指数
1
解决办法
2万
查看次数

使用scikit-learn的顺序k均值聚类

有没有办法使用scikit-learn执行顺序k-means聚类?我似乎找不到合适的方法来添加新数据,而无需重新拟合所有数据.

谢谢

python cluster-analysis machine-learning scikit-learn

1
推荐指数
1
解决办法
4403
查看次数