这是我第一次使用 ColumnTransformer,我遇到了数组维度的问题。
这是我的数据框,名为“concat_data”:
Date Hour Observation
0 01/09/2015 0 10
1 01/09/2015 1 9
2 01/09/2015 2 8
3 01/09/2015 3 10
4 01/09/2015 4 12
Run Code Online (Sandbox Code Playgroud)
我试图使用以下代码仅在观察列上应用标准缩放器:
preprocessor = ColumnTransformer(
transformers=[
('num', StandardScaler(), ['Observation'])],
remainder="passthrough")
preprocessor.fit(concat_data, concat_data['Observation'])
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
ValueError:1D 数据传递到需要 2D 数据的转换器。尝试将列选择指定为一项的列表而不是标量。
我可以在没有 ColumnTransformer 的情况下完成此操作,但我的目标是了解 ColumnTransformer 的工作原理。例如,这段代码可以工作:
StandardScaler().fit(concat_data[['Observation']])
Run Code Online (Sandbox Code Playgroud)
谢谢大家!
AWS Sagemaker的笔记本附带Scikit-Learn版本0.19.1
我想使用版本 0.20.2。为了避免每次在笔记本代码中更新它,我尝试使用生命周期配置。我用以下代码创建了一个:
#!/bin/bash
set -e
/home/ec2-user/anaconda3/bin/conda install scikit-learn -y
Run Code Online (Sandbox Code Playgroud)
当我运行附加的笔记本实例并转到终端时,找到的 scikit-learn 版本conda list是正确的(0.20.2)。但是当我运行笔记本并导入sklearn时,版本仍然是0.19.2。
import sklearn
print(sklearn.__version__)
Run Code Online (Sandbox Code Playgroud)
SageMaker 实例上是否有任何虚拟环境可供我安装该软件包?如何修复我的笔记本生命周期配置?
这是我的原始数据框:
Label 1 | Label 2 | Label 3 | Variable 1 | Variable 2
-------------------------------------------------------
Blabla1 | Hop1 | Hip1 | 0 | 1
Blabla2 | Hop2 | Hip2 | 1 | 0
Blabla3 | Hop3 | Hip3 | 1 | 1
Blabla4 | Hop4 | Hip4 | 0 | 0
Run Code Online (Sandbox Code Playgroud)
我的目标是将变量1和变量2放入一行,如果它们中有1。对于以上示例,例外结果为:
Label 1 | Label 2 | Label 3 | Variable
------------------------------------------
Blabla1 | Hop1 | Hip1 | Variable 2
Blabla2 | Hop2 | Hip2 | Variable 1 …Run Code Online (Sandbox Code Playgroud)