tea white
tea white

Reputation: 1

trying to build the step but meet some problems

I'm trying to build simple pipeline:

import pandas as pd
import numpy as np
from sklearn.base import BaseEstimator, TransformerMixin
import torch
from torch.utils.data import DataLoader, TensorDataset

class CGANDataAugmenter(BaseEstimator, TransformerMixin):
    def __init__(self, device, opt):
        self.generator = Generator(opt).to(device)
        self.discriminator = Discriminator(opt).to(device)
        self.device = device
        self.opt = opt
        self.n_samples=opt.n_samples
        self.sampler=None

    def fit_transform(self, X, y):
        feature_name = X.columns
        label_name = y.name
        self.sampler = train_CGAN(X,y,self.generator,self.discriminator,self.device,self.opt)
        generated_data = sample(self.sampler,self.n_samples, feature_name, label_name,self.opt)
        original_data=pd.concat([X,y],axis=1)

        combine_data=pd.concat([original_data,generated_data],axis=0)

        X_combined = combined_data.drop(columns=[label_name])
        Y_combined = combined_data[label_name]

        return X_combined, Y_combined

from imblearn.pipeline import Pipeline
from sklearn.tree import DecisionTreeClassifier

        steps = [
            ('sampler', CGANDataAugmenter(device,opt)),
            ('model',DecisionTreeClassifier())
        ]

And I'm getting error:

TypeError: Last step of Pipeline should implement fit or be the string 'passthrough'. 'CGANDataAugmenter(device=device(type='cpu'), opt=Namespace(lr=0.0002, b1=0.5, b2=0.999, num_classes=2, latent_dim=8, n_epochs=100, batch_size=64, n_samples=100, origin_size=1))' (type ) doesn't

What is wrong? How can I fix it?

Upvotes: 0

Views: 18

Answers (0)

Related Questions