簡體   English   中英

scikit-learn 向 SGDClassifier 添加額外數據

[英]scikit-learn add extra data to SGDClassifier

我正在嘗試使用scikit-learn進行文本分類。

我的文本分類不好。 我認為我可以通過添加可以以整數數組的形式推斷的數據來改進預測。

例如,樣本 1 將附帶[3, 1, 5, 2] ,樣本 2 將附帶[2, 1, 4, 2] 測試數據也是如此。

這個想法是分類器可以使用文本和數字來對數據進行分類。

我已經閱讀了 scikit learn 的文檔,但我找不到如何去做。 這一定是可能的,因為在內部分類的所有內容都是數字向量。 所以添加另一個數字向量應該不是什么大問題,但我不知道怎么做。 partial_fit添加更多樣本,它不添加有關現有樣本的更多信息。 有沒有辦法做我想做的事情。 我試圖將GaussianNBSGDClassifier結合起來,但事實證明我不知道該怎么做。 (這是一個壞主意嗎?)

我應該怎么辦?

我認為您可以將此新功能作為另一個維度添加到您的訓練數據中。 您需要在調用 SGD 之前通過添加新功能來修改訓練數據。

一個簡單/天真的方法是:

例如,如果我的兩個樣本的訓練數據是X = [ [1,2,3], [8,9,0] ]

我對每個樣本的新特征是new_feature_X = [ [11,22,33], [77,88,00] ]

我的新訓練數據將是:

X_new = [[1,2,3,11,22,33], [8,9,0,77,88,00]]

然后你調用SGD.fit(X_new, labels)

就我對 SGD 的了解而言,我認為沒有其他方法可以將兩個功能結合起來。

這個想法是分類器可以使用文本和數字來對數據進行分類。

我發現神經網絡更適合於此。 您可以使用兩個輸入層,一個用於文本向量,一個用於數字,然后將它們一起輸入網絡以獲得 output。

我試圖將 GaussianNB 與 SGDClassifier 結合起來,但事實證明我不知道該怎么做。 (這是一個壞主意嗎?)

SGD 表示隨機梯度下降。 是否有可能找到 NaiveBayes 的梯度? function對應的成本是多少?

我應該怎么辦?

  1. 合奏。 訓練兩個單獨的分類器。 一個使用您的文本數據,另一個用於您的新手工功能。 然后取他們的預測概率的平均值。 您可以訓練多個分類器並接受他們的投票。 教程非常適合。

  2. 試用 MLP 分類器。 我不久前使用過它,發現它對文本非常有效。

  3. 神經網絡。 使用Keras非常容易。

  4. 閱讀研究文獻。 學術界很有可能對您的數據集做了一些工作。 嘗試閱讀其中的一些。 Google 學者、語義學者是查找已發表研究的好地方。

from keras.layers import Input, Dense,Concatenate
from keras.models import Model

# This returns a tensor
text_input_vec = Input(shape=(784,))
new_numeric_feature = Input(shape=(4,))

# feed your text to a dense layer
dense1 = Dense(64, activation='relu')(text_input_vec)

# feed your numeric feature to another dense layer
dense2 = Dense(64, activation='relu')(new_numeric_feature)

# concatenate/combine the output of both
concat = Concatenate(axis=-1)([dense1,dense2])

# use the above to predict the label of your text. Layer below
# assumes you have 2 classes 
predictions = Dense(2, activation='softmax')(concat)

model = Model(inputs=[text_input_vec,new_numeric_feature], outputs=predictions)
model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

model.summary()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM