标签: scikit-learn

Python - 什么是sklearn.pipeline.Pipeline?

我无法弄清楚它是如何sklearn.pipeline.Pipeline工作的.

文档中有一些解释.例如,他们的意思是:

使用最终估算器进行变换的流水线.

为了让我的问题更清楚,那是steps什么?他们是如何工作的?

编辑

感谢答案,我可以让我的问题更加清晰:

当我调用管道并传递,作为步骤,两个变换器和一个估计器,例如:

pipln = Pipeline([("trsfm1",transformer_1),
                  ("trsfm2",transformer_2),
                  ("estmtr",estimator)])
Run Code Online (Sandbox Code Playgroud)

当我打电话给你时会发生什么?

pipln.fit()
OR
pipln.fit_transform()
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚估算器如何成为变压器以及如何安装变压器.

python machine-learning scikit-learn

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

SKLearn 1.0 版本中警告“有效功能名称”

升级到 scikit-learn 1.0 版本后,我收到以下警告:

UserWarning:X 没有有效的功能名称,但 IsolationForest 已安装了功能名称

我在文档中找不到什么是“有效的功能名称”。我该如何处理这个警告?

python-3.x pandas scikit-learn

91
推荐指数
4
解决办法
18万
查看次数

在scikit中的RandomForestClassifier与ExtraTreesClassifier学习

任何人都可以解释scikit中的RandomForestClassifier和ExtraTreesClassifier之间的区别.我花了很多时间阅读论文:

P. Geurts,D.Ernst.和L. Wehenkel,"极度随机树",机器学习,63(1),3-42,2006

看来这些是ET的区别:

1)当在分割中选择变量时,从整个训练集中抽取样本而不是训练集的自举样本.

2)从每次分裂的样品中的值范围中完全随机地选择裂解.

这两件事的结果是更多的"叶子".

random-forest scikit-learn

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

sklearn中'transform'和'fit_transform'之间的区别是什么?

在sklearn-python工具箱中,有两个函数transformfit_transformabout sklearn.decomposition.RandomizedPCA.两个功能的描述如下

在此输入图像描述 在此输入图像描述

但它们之间有什么区别?

python python-2.7 scikit-learn

85
推荐指数
7
解决办法
6万
查看次数

ImportError:没有名为model_selection的模块

我正在尝试使用train_test_split函数并写:

from sklearn.model_selection import train_test_split
Run Code Online (Sandbox Code Playgroud)

这就是原因

ImportError: No module named model_selection
Run Code Online (Sandbox Code Playgroud)

为什么?以及如何克服?

python scikit-learn

85
推荐指数
5
解决办法
15万
查看次数

如何将Scikit-learn数据集转换为Pandas数据集?

如何将数据从Scikit-learn Bunch对象转换为Pandas DataFrame?

from sklearn.datasets import load_iris
import pandas as pd
data = load_iris()
print(type(data))
data1 = pd. # Is there a Pandas method to accomplish this?
Run Code Online (Sandbox Code Playgroud)

dataset pandas scikit-learn

80
推荐指数
11
解决办法
6万
查看次数

如何检查nltk的哪个版本,scikit学习安装?

在shell脚本中,我正在检查是否已安装此软件包,如果未安装,则安装它.所以使用shell脚本:

import nltk
echo nltk.__version__
Run Code Online (Sandbox Code Playgroud)

但在停止shell脚本import

在linux终端试图以这种方式看到:

which nltk
Run Code Online (Sandbox Code Playgroud)

没有任何想法它安装.

有没有其他方法可以在shell脚本中验证此软件包安装,如果没有安装,也可以安装它.

python linux shell nltk scikit-learn

78
推荐指数
4
解决办法
14万
查看次数

当期望1d阵列时,传递列向量y

我需要适应RandomForestRegressorsklearn.ensemble.

forest = ensemble.RandomForestRegressor(**RF_tuned_parameters)
model = forest.fit(train_fold, train_y)
yhat = model.predict(test_fold)
Run Code Online (Sandbox Code Playgroud)

这段代码一直有效,直到我对data(train_y)进行了一些预处理.错误消息说:

DataConversionWarning:当期望1d数组时传递列向量y.请将y的形状更改为(n_samples,),例如使用ravel().

model = forest.fit(train_fold,train_y)

以前train_y是一个系列,现在它是numpy数组(它是一个列向量).如果我应用train_y.ravel(),那么它变成行向量并且没有出现错误消息,通过预测步骤需要很长时间(实际上它永远不会完成......).

RandomForestRegressor我发现的文档中train_y应该定义为y : array-like, shape = [n_samples] or [n_samples, n_outputs] 任何想法如何解决这个问题?

python numpy pandas scikit-learn

78
推荐指数
5
解决办法
8万
查看次数

使用scikit-learn分类为多个类别

我正在尝试使用scikit-learn的监督学习方法之一将文本片段分类为一个或多个类别.我尝试的所有算法的预测函数只返回一个匹配.

例如,我有一段文字:

"Theaters in New York compared to those in London"
Run Code Online (Sandbox Code Playgroud)

我已经训练了算法为我提供的每个文本片段选择一个地方.

在上面的例子中,我希望它返回New YorkLondon,但它只返回New York.

是否可以使用scikit-learn返回多个结果?或者甚至以最高概率返回标签?

谢谢你的帮助.

---更新

我尝试过使用,OneVsRestClassifier但我仍然只能在每段文字中找到一个选项.下面是我正在使用的示例代码

y_train = ('New York','London')


train_set = ("new york nyc big apple", "london uk great britain")
vocab = {'new york' :0,'nyc':1,'big apple':2,'london' : 3, 'uk': 4, 'great britain' : 5}
count = CountVectorizer(analyzer=WordNGramAnalyzer(min_n=1, max_n=2),vocabulary=vocab)
test_set = ('nice day in nyc','london town','hello welcome to the big apple. enjoy it here and london too')

X_vectorized = …
Run Code Online (Sandbox Code Playgroud)

python classification scikit-learn

77
推荐指数
4
解决办法
6万
查看次数

ValueError:numpy.ndarray 大小已更改,可能表示二进制不兼容。预期来自 C 头文件的 88,来自 PyObject 的 80

从 pyxdameraulevenshtein 导入会出现以下错误,我有

pyxdameraulevenshtein==1.5.3, 
pandas==1.1.4 and 
scikit-learn==0.20.2. 
Numpy is 1.16.1. 
Works well in Python3.6, Issue in Python3.7.
Run Code Online (Sandbox Code Playgroud)

有没有人在 Python3.7 (3.7.9)、docker image - python:3.7-buster 上遇到过类似的问题

__init__.pxd:242: in init pyxdameraulevenshtein
    ???
E   ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject
Run Code Online (Sandbox Code Playgroud)

python numpy pandas scikit-learn python-3.7

73
推荐指数
12
解决办法
8万
查看次数