小编Jer*_*uez的帖子

在管道中使用分类器后的度量标准

我继续调查管道.我的目标是仅使用管道执行机器学习的每个步骤.使用其他用例更灵活,更容易调整我的管道.所以我做了什么:

  • 第1步:填写NaN值
  • 第2步:将分类值转换为数字
  • 第3步:分类器
  • 第4步:GridSearch
  • 第5步:添加指标(失败)

这是我的代码:

import pandas as pd
from sklearn.base import BaseEstimator, TransformerMixin
from sklearn.feature_selection import SelectKBest
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
from sklearn.metrics import f1_score


class FillNa(BaseEstimator, TransformerMixin):

    def transform(self, x, y=None):
            non_numerics_columns = x.columns.difference(
                x._get_numeric_data().columns)
            for column in x.columns:
                if column in non_numerics_columns:
                    x.loc[:, column] = x.loc[:, …
Run Code Online (Sandbox Code Playgroud)

python pipeline machine-learning scikit-learn grid-search

11
推荐指数
1
解决办法
742
查看次数

使用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, X,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 = …
Run Code Online (Sandbox Code Playgroud)

python pipeline machine-learning pandas scikit-learn

6
推荐指数
1
解决办法
864
查看次数