我需要帮助才能开始使用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
将此文件读入Pandas DataFrame后,我想训练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 :(得分:0)
我使用pandas和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除了here和here之外,还有一些不错的参考资料。
如果您正在寻找特定的内容,请发帖提问。