类型错误:fit_transform() 缺少 1 个必需的位置参数:'X'

新手上路,请多包涵

我正在尝试在数据集中进行 特征缩放,但出现错误并且不知道如何继续:

     > Traceback (most recent call last):
    >
    >   File "<ipython-input-10-71bea414b4d0>", line 22, in <module>
    >     x_train = sc_X.fit_transform(x_train)
    >
    > TypeError: fit_transform() missing 1 required positional argument: 'X'

这是我的代码:

 import pandas as pd

# Importing the dataset
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 3].values
# Taking care of missing data
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values="NaN", strategy="mean", axis=0)
imputer = Imputer.fit(imputer,X[:,1:3])
X[:, 1:3] = Imputer.transform(imputer,X[:, 1:3])

#Spliting the dataset into Training set and Test Set
from sklearn.cross_validation import train_test_split

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size= 0.2, random_state= 0)

#Feature Scalling

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler
x_train = sc_X.fit_transform(x_train)
x_test = sc_X.transform(x_test)

原文由 danyialKhan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

您正在分配 sc_XStandardScaler 类的引用。但是 fit_transform() 不是类方法,而是实例方法。这意味着您必须创建该类的一个实例。

所以,

 sc_X = StandardScaler

应该:

 sc_X = StandardScaler()

原文由 Uku Loskit 发布,翻译遵循 CC BY-SA 4.0 许可协议

您需要创建类实例:

 sc_X = StandardScaler()

作为 fit_transform() 是实例方法不是类方法

原文由 biddut 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题