我正在运行以下代码。我想计算我的ANN测试数据的准确性。我正在使用windows platfrom,python 3.5
import numpy
import pandas as pd
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.metrics import accuracy_score
dataset=pd.read_csv('main.csv')
dataset=dataset.fillna(0)
X=dataset.iloc[:, 0:6].values
#X = X[numpy.logical_not(numpy.isnan(X))]
y=dataset.iloc[:, 6:8].values
#y = y[numpy.logical_not(numpy.isnan(y))]
#regr = LinearRegression()
#regr.fit(numpy.transpose(numpy.matrix(X)), numpy.transpose(numpy.matrix(y)))
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test=train_test_split(X,y, test_size=0.24,random_state=0)
model = Sequential()
model.add(Dense(4, input_dim=6, kernel_initializer='normal', activation='relu'))
model.add(Dense(4, kernel_initializer='normal', activation='relu'))
model.add(Dense(2, kernel_initializer='normal'))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(X_train, y_train, batch_size=5, epochs=5)
y_pred=model.predict(X_test)
现在,我想计算y_pred的准确性。任何帮助将不胜感激。 上面的代码是自解释的。我目前只使用5个时代进行实验。
答案 0 :(得分:0)
Keras已经实现了准确性等指标,因此您只需将model.compile
行更改为:
model.compile(loss='mean_squared_error', optimizer='adam',
metrics = ["accuracy"])
然后训练和验证准确度(在[0,1]范围内)将在训练期间在进度条上显示,您也可以使用model.evaluate
计算准确度,这将返回一个丢失元组和指标(在这种情况下的准确性)。
答案 1 :(得分:0)
除了使用keras
的建议。您可以使用scikit-learn
计算准确度,如下所示:
from sklearn.metrics import accuracy_score
accuracy_score(y_test, y_pred)
有关详细信息,请查看文档:{{3}}
答案 2 :(得分:0)
虽然从狭义的技术意义上说,已经提供的答案都是正确的,但是你的问题有一个更普遍的问题会影响它的本质:你处于回归或分类背景中吗?
如果您处于回归上下文中(正如您的loss='mean_squared_error'
所暗示的那样以及输出图层中的线性激活),那么模型编译的简单扩充
model.compile(loss='mean_squared_error', optimizer='adam',
metrics = ["accuracy"])
正如Matias所说,将提供准确性。然而,准确度在回归设置中毫无意义;看到答案&讨论here了解更多详情。
如果您处于分类上下文中(正如您希望计算准确性所暗示的那样,这仅在分类中有意义),那么您的损失函数不应该是MSE,而是相反,交叉熵,以及最后一层的激活不应该是线性的。
答案 3 :(得分:-1)
要计算准确性,我们可以使用model.evaluate
函数