, поэтому я делаю проект, в котором в основном я должен предсказать, будет ли цена дома выше или ниже ее средней цены, и для этого я использую этот набор данных из Kaggle (https://drive.google.com/file/d/1GfvKA0qznNVknghV4botnNxyH-KvODOC/view). 1 означает «выше среднего», а 0 означает «ниже среднего». Я написал этот код для обучения нейронной сети и сохранения его в виде файла .h5:
import pandas as pd
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Dense
import h5py
df = pd.read_csv('housepricedata.csv')
dataset = df.values
X = dataset[:,0:10]
Y = dataset[:,10]
min_max_scaler = preprocessing.MinMaxScaler()
X_scale = min_max_scaler.fit_transform(X)
X_train, X_val_and_test, Y_train, Y_val_and_test = train_test_split(X_scale, Y, test_size=0.3)
X_val, X_test, Y_val, Y_test = train_test_split(X_val_and_test, Y_val_and_test, test_size=0.5)
model = Sequential([
Dense(32, activation='relu', input_shape=(10,)),
Dense(32, activation='relu'),
Dense(1, activation='sigmoid'),
])
model.compile(optimizer='sgd',
loss='binary_crossentropy',
metrics=['accuracy'])
hist = model.fit(X_train, Y_train,
batch_size=32, epochs=100,
validation_data=(X_val, Y_val))
model.save("house_price.h5")
После запуска он успешно сохраняет файл .h5 в моем каталоге. Сейчас я хочу использовать мою обученную модель, чтобы делать прогнозы для нового файла .csv и определять, выше или ниже каждый из них выше средней цены. Это изображение файла csv в VSCode, для которого я хочу, чтобы он делал прогнозы: изображение файла csv Как видите, этот файл не содержит 1 (выше медианы) или 0 (ниже медианы) ) потому что именно это я и хочу предсказать. Вот код, который я написал для этого:
import pandas as pd
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Dense
from keras.models import load_model
import h5py
df = pd.read_csv('data.csv')
dataset = df.values
X = dataset[:,0:10]
Y = dataset[:,10]
min_max_scaler = preprocessing.MinMaxScaler()
X_scale = min_max_scaler.fit_transform(X)
X_train, X_val_and_test, Y_train, Y_val_and_test = train_test_split(X_scale, Y, test_size=0.3)
X_val, X_test, Y_val, Y_test = train_test_split(X_val_and_test, Y_val_and_test, test_size=0.5)
model = load_model("house_price.h5")
y_pred = model.predict(X_test)
print(y_pred)
Это вывод [[0.00101464]]
Я понятия не имею, что это такое и почему он возвращает только одно значение, даже если файл CSV имеет 4 строки. Кто-нибудь знает, как я могу это исправить и быть в состоянии предсказать 1 или 0 для каждой строки в файле CSV? Спасибо!