【发布时间】:2020-05-04 23:00:13
【问题描述】:
所以我正在做一个项目,基本上我必须预测房价是高于还是低于其中位价,为此,我使用了来自 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 文件进行预测,并确定每个文件是否高于或低于中位数价格。这是 VSCode 中 csv 文件的图像,我希望它对其进行预测: csv file image 如您所见,此文件不包含 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 行。有谁知道我如何解决这个问题并能够预测 csv 文件中每一行的 1 或 0?
谢谢!
【问题讨论】:
标签: python tensorflow machine-learning keras neural-network