Как я могу запустить тестовые данные для моей обученной модели keras? - PullRequest
0 голосов
/ 29 декабря 2018

Код для обучения моей модели:

from keras.models import Sequential
from keras.layers import Dense
import numpy
import pandas as pd

X = pd.read_csv(
    "data/train.csv", header=0, usecols=['Type', 'Age', 'Breed1', 'Breed2', 'Gender', 'Color1', 'Color2', 'Color3', 'MaturitySize', 'FurLength',    'Vaccinated',   'Dewormed', 'Sterilized',   'Health',   'Quantity', 'Fee', 'VideoAmt', 'PhotoAmt'])
Y = pd.read_csv(
    "data/train.csv", header=0, usecols=['AdoptionSpeed'])

X = pd.get_dummies(X, columns=["Type", "Breed1",
                               "Breed2", 'Color1', 'Color2', 'Color3', 'Gender', 'MaturitySize', 'FurLength'])
print(X)

Y = Y['AdoptionSpeed'].apply(lambda v: v / 4)

input_units = X.shape[1]

model = Sequential()
model.add(Dense(input_units, input_dim=input_units, activation='relu'))
model.add(Dense(input_units, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
              optimizer='adam', metrics=['accuracy'])
model.fit(X, Y, epochs=250, batch_size=1000)
scores = model.evaluate(X, Y)

У меня есть файл с именем test.csv.Как я могу протестировать этот набор на модели, чтобы увидеть, насколько эффективна моя модель?

Кажется, что точность данных тренировки составляет 97%, но я обеспокоен тем, что это может привести к переобучению.

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Чтобы выбрать лучшую модель для оценки ее на тестовом наборе, вы должны сначала разбить тренировочный набор на тренировочный и проверочный набор.Затем вы итеративно обучаете и проверяете модель.Метод Keras fit делает это автоматически для вас.

model.fit(X, Y, epochs=250, batch_size=1000, validation_split=0.2)

Как видите, это выделит 20% тренировочного набора, который будет использоваться для проверки модели.

Затем вы должны использовать файл test.csv, который у вас есть только для того, чтобы определить, насколько хороша выбранная вами модель.Однако никогда не делайте выбор модели с помощью тестового набора.Набор тестов используется, чтобы вы могли объективно оценить, насколько хорошо ваша модель будет работать в реальном мире.

Тогда я бы загрузил файл test.csv и использовал бы:

model.evaluate(x=X_test, y=Y_test)

В противном случае, если вы просто хотите сделать вывод на тестовом наборе, вы можете сделать:

predictions = model.predict(X_test)

Этот метод вернет прогнозы для вашего тестового набора.

0 голосов
/ 29 декабря 2018

Вы можете сделать это так же, как ваш подход к обучению, следующим образом:

f = "test.csv"
X = pd.read_csv(
    f, header=0, usecols=['Type', 'Age', 'Breed1', 'Breed2', 'Gender', 'Color1', 'Color2', 'Color3', 'MaturitySize', 'FurLength',    'Vaccinated',   'Dewormed', 'Sterilized',   'Health',   'Quantity', 'Fee', 'VideoAmt', 'PhotoAmt'])
Y = pd.read_csv(
    f, header=0, usecols=['AdoptionSpeed'])

X = pd.get_dummies(X, columns=["Type", "Breed1",
                               "Breed2", 'Color1', 'Color2', 'Color3', 'Gender', 'MaturitySize', 'FurLength'])
print(X)

Y = Y['AdoptionSpeed'].apply(lambda v: v / 4)
scores = model.evaluate(X, Y)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...