0

我有一個帶有7個屬性和大約80,000行的標記數據集。但是,其中的3個屬性包含超過50%的缺失數據。我過濾了數據以忽略具有任何空值的行,從而爲我留下了大約30,000行完整數據。每個屬性的值的格式都是字符串,如「這是屬性i的實例的值」。所需的輸出(標籤)是二進制(0或1),並且每個實例都有一個標籤。我想訓練一個分類器來預測測試集上的所需輸出。我正在使用Python和sklearn,並被困在如何從這個數據集中提取特徵。任何建議將不勝感激。謝謝屬性值爲字符串的數據分類

+0

如果超過50%的丟失,而且他們的文本數據,那麼他們怎麼能是有用的?您可能需要向原始數據提供附加信息。 – Leb

+0

如果你還沒有,檢查'csv'模塊是否可以幫助。 [PMOTW]上的示例(https://pymotw.com/2/csv/) – Pynchia

回答

1

Scikit-learn有幾個明確設計用於從文本輸入中提取特徵的工具;請參閱文檔的Text Feature Extraction部分。

下面是從一個字符串列表構建的分類器的例子:

from sklearn.feature_extraction.text import CountVectorizer 
from sklearn.naive_bayes import MultinomialNB 

data = [['this is about dogs', 'dogs are really great'], 
     ['this is about cats', 'cats are evil']] 
labels = ['dogs', 
      'cats'] 

vec = CountVectorizer() # count word occurrences 
X = vec.fit_transform([' '.join(row) for row in data]) 

clf = MultinomialNB() # very simple model for word counts 
clf.fit(X, labels) 

new_data = ['this is about cats too', 'I think cats are awesome'] 
new_X = vec.transform([' '.join(new_data)]) 

print(clf.predict(new_X)) 
# ['cats'] 
相關問題