python - 初学者问题,使用 sklearn,保存模型并测试单个数据框
问题描述
python 神经网络和 sklearn 的新手,我编写了以下神经模型。在训练集上,它工作得很好,准确率约为 98%。现在我有一些问题。
from sklearn.ensemble import GradientBoostingClassifier
model = GradientBoostingClassifier(learning_rate=0.99,max_depth=3)
model.fit(X_standardized, y)
predictions = model.predict(X_standardized)
from sklearn.metrics import confusion_matrix, classification_report
print(confusion_matrix(y, predictions))
print ()
print(classification_report(y,predictions))
神经网络的状态可以保存和加载吗?
ea 存储权重梯度。
#something like:
Model.save("c:\neural\testnet.xml")
如何对单个数据框 ea 执行单独的测试:
print ("answer =" ,Model.TestSample(test_data_frame)) # single input
>>> answer = 0.78 ...estimated accuracy 97% # or so
解决方案
关于保存模型的状态:您可以使用pickle包保存模型,例如:
import pickle
pickle.dump(model, open('model.sav', 'wb'))
不确定“对单个数据框进行单独测试”是什么意思,但是如果您想在一些不同的(测试)数据上测试模型,您可以创建类似的内容:
import sklearn
df_predictions = model.predict( *input X data* )
accuracy = sklearn.metrics.r2_score(*target (y data)*, df_predictions)
推荐阅读
- javascript - 如何在 Type Script / Java Script 中将字符串数组值合并到对象数组中的特定属性
- c# - Excel 文件在下载时已损坏
- postgis - 用于 OSM 映射的工作流 PostGIS 表
- matlab - 如何将结构转换为 n 维矩阵
- php - 如何解决对未定义方法 stdClass::notify() 的调用
- html - SVG 背景没有正确缩放
- python - 使用 for 循环将值分配给 pandas DataFrame 列
- scala - scala-maven-plugin 编译失败对于工件 {org.scala-sbt:compiler-bridge_2.11:null:jar}
- python - ValueError:需要至少一个数组来连接
- java - 无法构建 JavaFX 应用程序