我必须在课堂上使用机器学习,我有训练数据集和测试数据集,这对我来说非常困难,因为我不是来自编码背景,他们在我选择之前告诉我这个课程适合没有太多先验知识的人。
我已将训练数据处理成csv文件,其中第一列是评论,第二列是1或0形式的情绪
我已加载文件并按此处理:
def load_file():
with open('trainingdatafile.csv') as csv_file:
reader = csv.reader(csv_file, delimiter=",", quotechar='"')
reader.next()
data = []
target = []
for row in reader:
# skip missing data
if row[0] and row[1]:
data.append(row[0])
target.append(row[1])
return data, target
我已经处理了这样的数据:
def preprocess():
data, target = load_file()
count_vectorizer = CountVectorizer(binary='true')
data = count_vectorizer.fit_transform(data)
tfidf_data = TfidfTransformer(use_idf=False).fit_transform(data)
return tfidf_data
我找到了一种方法可以让它在我将训练数据分开并使用其中一部分进行训练而其余部分进行测试时如此:
def learn_model(data, target):
# preparing data for split validation. 60% training, 40% test
data_train, data_test, target_train, target_test = cross_validation.train_test_split(data, target, test_size=.2,
random_state=1)
classifier = BernoulliNB().fit(data_train, target_train)
predicted = classifier.predict(data_test)
evaluate_model(target_test, predicted)
其余代码在这里:
def evaluate_model(target_true, target_predicted):
print classification_report(target_true, target_predicted)
print "The accuracy score is {:.2%}".format(accuracy_score(target_true, target_predicted))
def main():
data, target = load_file()
tf_idf = preprocess()
learn_model(tf_idf, target)
调整代码的最佳方法是什么,以便我可以使用培训数据评估我的test.csv文件?我真的很困惑如何实现我想要的,所以任何帮助都会非常感激。