高级别
X
。y
。LogisticRegression
主要问题
如何将y
(不是X
,而不是X
和y
,只是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