python pipeline用法_使用Pipeline sklearn(Python)的多个自定义类

我尝试为学生做一个关于Pipeline的教程,但我阻止了.我不是专家,但我正在努力改进.谢谢你的放纵.

实际上,我尝试在管道中执行几个步骤来为分类器准备数据帧:

>步骤1:数据帧的描述

>第2步:填写NaN值

>第3步:将分类值转换为数字

这是我的代码:

class Descr_df(object):

def transform (self,X):

print ("Structure of the data: \n {}".format(X.head(5)))

print ("Features names: \n {}".format(X.columns))

print ("Target: \n {}".format(X.columns[0]))

print ("Shape of the data: \n {}".format(X.shape))

def fit(self,X,y=None):

return self

class Fillna(object):

def transform(self,X):

non_numerics_columns = X.columns.difference(X._get_numeric_data().columns)

for column in X.columns:

if column in non_numerics_columns:

X[column] = X[column].fillna(df[column].value_counts().idxmax())

else:

X[column] = X[column].fillna(X[column].mean())

return X

def fit(self,y=None):

return self

class Categorical_to_numerical(object):

def transform(self,X):

non_numerics_columns = X.columns.difference(X._get_numeric_data().columns)

le = LabelEncoder()

for column in non_numerics_columns:

X[column] = X[column].fillna(X[column].value_counts().idxmax())

le.fit(X[column])

X[column] = le.transform(X[column]).astype(int)

return X

def fit(self,y=None):

return self

如果我执行步骤1和2或步骤1和3它可以工作但是如果我同时执行步骤1,2和3.我有这个错误:

pipeline = Pipeline([('df_intropesction',Descr_df()),('fillna',Fillna()),('Categorical_to_numerical',Categorical_to_numerical())])

pipeline.fit(X,y)

AttributeError: 'NoneType' object has no attribute 'columns'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值