sklearn - 仅作为管道

时间:2016-01-11 23:55:35

标签: python scikit-learn

高级别

  1. 将文本数据转换为计数矩阵并将其称为X
  2. 将整数数据转换为二进制数并将其称为y
  3. 将数据提供给sklearn LogisticRegression
  4. 主要问题

    如何将y(不是X,而不是Xy,只是y)转换为二进制,作为sklearn中的第一步{ {1}}。

    示例

    Pipeline

    示例df

    df = pd.DataFrame({'Text': ['i am a text', 'i am also text', 'turn text into counts',
              'binarize me as text please'], 'Integer': [20, 0, 4, 0]},
              columns=['Text', 'Integer'])
    

    我知道我可以使用 Text Integer 0 i am a text 20 1 i am also text 0 2 turn text into counts 4 3 binarize me as text please 0

    执行以下操作
    Pipeline

    然后使用X = df['Text'] y = df['Integer'] pipeline = Pipeline(steps=[ ('tfidf', TfidfVectorizer(ngram_range=(1,2), stop_words='english')), ('lr', LogisticRegression()), ]) X

    y

    我不明白

    由于我将pipeline.fit(X, y) X传递给y,我如何在管道中指定首先将pipeline.fit(X, y)转换为二进制(y,{ {1}})类?

    我意识到我可以事先转换0(见下文),但我的问题的核心是,如何使用sklearn函数在1内对y进行预处理。

    y

    其他笔记

    我知道并在Pipeline上尝试了y = np.where(df['Integer'] >= 1, 1, 0) ,例如,如果我在Binarizer方法本身预处理y,例如y,同样,我的目的是学习如何在pipeline.fit(如果可能)中预处理pipeline.fit(X, Binarizer().transform(y.reshape((len(y), 1)))[:, 0]),而不是在y方法或之前预处理。

    pipeline

0 个答案:

没有答案
相关问题