如何为模型的准确性创建图

数据挖掘 机器学习 Python 喀拉斯 准确性 matplotlib
2021-09-30 06:02:27

我对整个话题都很陌生,所以请不要苛刻。我知道这些可能是简单的问题,但每个人都必须从某个地方开始^^

所以我创建了(或更多复制)我的第一个小模型,它根据他们的父亲预测儿子的身高。

#Father Data
X=data['Father'].values[:,None]
X.shape

#According sons data
y=data.iloc[:,1].values
y.shape

#Spliting the data into test and train data
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=0)

#Doing a linear regression
lm=LinearRegression()
lm.fit(X_train,y_train)

# save the model to disk
filename = 'Father_Son_Height_Model.pckl'
pickle.dump(lm, open(filename, 'wb'))

#Predicting the height of Sons
y_test=lm.predict(X_test)
print(y_test)

现在我想创建一个图来显示我的模型的准确性或它有多“好”。类似的事情在这里完成: https ://machinelearningmastery.com/how-to-calculate-precision-recall-f1-and-more-for-deep-learning-models/

但我不能安静地让它工作。这似乎我会工作,但我应该在“model_history”中存储什么?

plt.subplot(212)
plt.title('Accuracy')
plt.plot(model_history.history['acc'], label='train')
plt.plot(model_history.history['val_acc'], label='test')
plt.legend()
plt.show()

一个易于适应的教程链接已经是一个很好的帮助。Keras 似乎是一件事,但如果可能且明智的话,我想避免使用另一个库。

1个回答

您的上下文与链接中提供的上下文不同在那里,作者在 Keras 中制作了一个神经网络,并绘制了准确度与 epoch 数的关系图。一个时期是整个数据集通过神经网络向前和向后传递一次。因此,他在每个 epoch 之后计算准确性,而权重会根据损失函数而变化以拟合数据。(因此,准确度随着 epoch 数量的增加而增加。)

在您的情况下,您正在执行拟合数据并生成方程的线性回归。没有反馈系统。此处的精度可以根据您的需要来定义。在这种情况下(根据父亲的身高预测儿子的身高),您可以将准确度定义为您的预测有多准确。采用像 MAE(平均绝对误差)这样的误差函数。错误率越小,您的模型就越准确。MAE 是这里的准确度度量。 在此处输入图像描述

对于一般分类任务,准确率是您正确预测的实例数除以实例总数。(在链接中,作者使用了类似这样定义的默认 keras 准确度指标)