我正在创建一个分类器,它将矢量化的书籍文本作为输入,并作为输出预测书籍是“好”还是“坏”。
我想到的两个选择是:
我想尽可能快地在一个小的误差范围内估计精度。重复训练测试的分裂速度较慢,因为即使我按标签分层(选择8本好书和4本坏书进行测试),特定模型的精度也可以从0.6到0.8不等,所以我必须跑很多次才能得到一个准确的估计。
for i in range(0,5):
dfcopy = df.copy()
dfcopy = dfcopy.sample(frac=1).reset_index(drop=True)
X, y = dfcopy.text, dfcopy.label
groups = dfcopy.title.tolist()
model = MultinomialNB()
name = 'LR'
pipe = Pipeline([('cleaner', clean_transformer()),
('vectorizer', bow_vector),
('classifier', model)])
score = cross_val_score(estimator=pipe, X=X, y=y, groups=groups, cv=GroupKFold())
print(score)
print(np.mean(score))
我试着按顺序走:
>
估计模型精度的最佳方法是什么?我还将使用此估计值进行模型比较、调优等。
CV速度快得多,所以我更愿意使用它。CV在这里使用有意义吗?
还有一个可能有用的东西是使用Train/Test/Validate集和超参数优化,比如Gridsearch,设置可能需要几个小时,但肯定会有回报。
如果您决定使用train/test/validate,scikit-learn为您提供了train_test_split函数:
X, y = df.text, df.label
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=1)
如果您决定使用gridsearch进行超参数优化,则需要:
grid_1 = {
"n_estimators": [100,200,500],
"criterion": ["gini", "entropy"],
"max_features": ['sqrt','log2',0.2,0.5,0.8],
"max_depth": [3,4,6,10],
"min_samples_split": [2, 5, 20,50]
}
model = RandomForestClassifier()
grid_search = GridSearchCV(model, grid_1, n_jobs=-1, cv=5)
grid_search.fit(X_train, Y_train)
Gridsearch作为优化技术非常简单,但将非常有助于提供更好的结果。如果您希望加深对此主题的理解并进一步增强代码,可以在这里找到使用更复杂的超参数优化策略(如TPE)的示例代码
最后,您的数据集似乎很小,如果您正在经历一列火车和另一列火车之间的长时间等待,我建议您考虑编写一个小的缓存系统,以减少加载和处理时间。您可以在这里找到一个使用小型缓存系统的示例代码
关于使用Lenet5网络解释MNIST上某些优化器的性能,我有几个问题,以及验证损失/精度与训练损失/精度图确切地告诉我们什么。因此,所有的事情都是在Keras中使用标准的LeNet5网络完成的,它运行了15个历元,批处理大小为128。 有两个图,列车acc vs val acc和列车损失vs val损失。我生成了4个图,因为我运行了两次,一次是validation_split=0.1,一次是va
*种子为重复性设置为123,我运行的是3.63 R。
使用Weka对鲍鱼数据集进行ANN和KNN。 ANN正确分类实例的结果3183 76.203%错误分类实例994 23.797%平均绝对误差0.214均方根误差0.3349相对绝对误差58.6486% KNN结果|正确分类实例3211 76.8734%错误分类实例966 23.1266%平均绝对误差0.2142均方根误差0.3361相对绝对误差58.7113% KNN具有较高的精度,而ANN具有较
本文向大家介绍Tensorflow实现在训练好的模型上进行测试,包括了Tensorflow实现在训练好的模型上进行测试的使用技巧和注意事项,需要的朋友参考一下 Tensorflow可以使用训练好的模型对新的数据进行测试,有两种方法:第一种方法是调用模型和训练在同一个py文件中,中情况比较简单;第二种是训练过程和调用模型过程分别在两个py文件中。本文将讲解第二种方法。 模型的保存 tensorflo
本文向大家介绍如何最好地在Google地图上显示HTML5地理位置的准确性?,包括了如何最好地在Google地图上显示HTML5地理位置的准确性?的使用技巧和注意事项,需要的朋友参考一下 要在Google Map上显示HTML5地理位置的准确性,请使用以下代码-
我有这样的代码 现在,为了打印值,如果T是一个类,我想调用对象的打印函数,但是如果T是一个基本数据类型,我只想使用printf。 那么,如何确定模板类型是基本数据类型还是类?