【发布时间】:2019-10-03 19:24:13
【问题描述】:
我是一个尝试机器学习的新手。我看到了这个 repo https://github.com/jbp261/Optimal-Classification-Model-of-BLE-RSSI-Dataset 并想复制一个类似的实验。
所以我有 2 个接收器,并且想对 Rssi 的给定值最接近哪一个进行分类。我捕获了一些训练数据并定义了区域 0(信标 1 附近)和区域 1(信标 2 附近)。
我用 keras 构建了一个模型(也尝试了一个运行良好的 RandomForest),但即使在以 0.8 的准确度评估基础训练数据时,我也得到了 50% 的错误预测。
batch_size = 100
#reading the input samples and separating the input from the outputs
dataframe = pd.read_csv("C:\aaa\Log.csv")
labels = dataframe.pop('result')
#creating the dataset from the data
ds = tf.data.Dataset.from_tensor_slices((dict(dataframe), labels))
ds = ds.batch(batch_size)
feature_columns = []
headers = dataframe.columns.tolist()
# numeric cols
for header in headers:
temp = feature_column.numeric_column(header)
#feature_columns.append(feature_column.bucketized_column(temp, boundaries=[-70, -60, -50, -40 , -30])) tried also this
feature_columns.append(temp)
feature_layer = tf.keras.layers.DenseFeatures(feature_columns)
model = tf.keras.Sequential([
feature_layer,
layers.Dense(128, activation='relu'),
layers.Dense(128, activation='relu'),
layers.Dense(2, activation='sigmoid')
])
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
model.fit(ds, epochs=20)
test_ds = tf.data.Dataset.from_tensor_slices((dict(dataframe), labels))
test_ds = test_ds.batch(batch_size)
loss, accuracy = model.evaluate(test_ds)
print("Accuracy", accuracy)
【问题讨论】:
-
我让它在适当的边界下工作并将优化器更改为 SGD
标签: python tensorflow machine-learning keras classification