2016-11-23 99 views
0

我需要scikit-learn入門幫助。作爲一個起點,一個非常簡單的解決方案將有很大幫助。 指點我一個類似問題的例子也有幫助。scikit-learn入門示例

我有以下內容(history.txt)一個文本

Id=101;Username=john;Date=1475359200;Announcement=111;Result=50;Title=blub;MassRequest=111;VolumeRequest=10 
Id=104;Username=john;Date=1475359900;Announcement=40;Result=23;Title=blah;MassRequest=300;VolumeRequest=50 
Id=222;Username=dave;Date=1475399200;Announcement=600;Result=420;Title=foo;MassRequest=40;VolumeRequest=20 
Id=301;Username=john;Date=1475559200;Announcement=300;Result=150;Title=bar;MassRequest=10;VolumeRequest=33 
Id=407;Username=dave;Date=1475659200;Announcement=200;Result=180;Title=blah-foo;MassRequest=90;VolumeRequest=55 

閱讀本文件轉換成一個數據幀的熊貓後,我想訓練scikit。 隨着新的輸入「new_announce」我想收到一個值爲一個可能的「結果」。

import pandas as pd 

history = [] 
f = open("history.txt",'r') 
for line in f.read().strip().split('\n'): 
    dummy = {} 
    for data in line.split(';'): 
     if data: 
      (key,value) = data.split('=') 
      dummy[key] = value 
    history.append(dummy) 

#df = pd.DataFrame.from_records(history) 
df = pd.DataFrame(history) 

#Train here scikit-learn 

new_announce ={'Id': '507', 
       'Username': 'dave', 
       'MassRequest': '10', 
       'Announcement': '333', 
       'Title': 'foobar', 
       'MassRequest': '10', 
       'VolumeRequest': '55'} 

在此先感謝

回答

0

我已經實現並採用熊貓和sclearn MultinomialNB一個非常簡單的例子。

它的一個例子就在這裏。

import pandas as pd 
from util import Util 
from sklearn.feature_extraction.text import CountVectorizer 
from sklearn.naive_bayes import MultinomialNB 
from sklearn.metrics import accuracy_score 

# Load CSVs into panda dataframes 
u=Util() 
reviews_df = u.getCommentsDf() 

# Divide data into train and test dataset 
split= int(round(0.7 * len(reviews_df))) 
train =reviews_df[:split] 
test=reviews_df[split:] 

print ("Training data ") 
print(train.groupby('suspended').size()) 
print ("Testing data ") 
print(test.groupby('suspended').size()) 

vectorizer = CountVectorizer(stop_words='english') 

# Learn the vocabulary dictionary and return term-document matrix 
X = vectorizer.fit_transform(train['body'].values.astype('U')) 
y = train['suspended'] 

clf =MultinomialNB() 
# Fit Naive Bayes classifier according to X, y 
clf.fit(X,y) 


xTest=vectorizer.transform(test['body'].values.astype('U')) 
# Perform classification on an array of test vectors X 
pred = clf.predict(xTest) 

# generate report 
trueValue= test['suspended'] 


print 'Accuracy Score \t '+ str(accuracy_score(trueValue, pred, normalize=False)) 

您可以使用其他工具和庫來提取功能並進行遊戲。

除了sklearn之外,還有一些很好的參考文獻是herehere

如果您正在尋找特定的東西,請發佈問題。

+0

你能提供一個你的csv文件的幾行樣本嗎? – MSO

+0

ID時間戳身體暫停 0 210876912(文本)0 1 225412275(文本)0 – user1211

相關問題