Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras:使用自动编码器进行预测_Python_Keras_Prediction_Autoencoder_One Hot Encoding - Fatal编程技术网

Python Keras:使用自动编码器进行预测

Python Keras:使用自动编码器进行预测,python,keras,prediction,autoencoder,one-hot-encoding,Python,Keras,Prediction,Autoencoder,One Hot Encoding,我有一个数据集,我将其水平分为两部分。第一节的A列是输入变量,第二节的A列是目标变量。我试图建立一个去噪的自动编码器,是使用目标变量训练。列A由字符串值组成,这些字符串值在输入自动编码器之前经过热编码。这就是我所做的: # Import Libraries import pandas as pd import numpy as np from numpy import array from numpy import argmax from sklearn.preprocessing import

我有一个数据集,我将其水平分为两部分。第一节的A列是输入变量,第二节的A列是目标变量。我试图建立一个去噪的自动编码器,是使用目标变量训练。列A由字符串值组成,这些字符串值在输入自动编码器之前经过热编码。这就是我所做的:

# Import Libraries
import pandas as pd
import numpy as np
from numpy import array
from numpy import argmax
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
from keras.models import Model
from keras.layers import Dense, Input
from keras.optimizers import Adam


# Load Dataset
df = pd.read_csv('dataset.csv', index_col=0)

# Divide dataset into sections
section_1 = df[df['D'] == 'Safe']
section_1 = section_1.head(100)

section_2 = df[df['D'] == 'Unsafe']
section_2 = section_2.head(100)

# One-Hot Encode values of Column A
target_values = array(section_2['A'])
input_values = array(section_1['A'])

# integer encode
label_encoder = LabelEncoder()
target_integer_encoded = label_encoder.fit_transform(target_values)
input_integer_encoded = label_encoder.fit_transform(input_values)

# binary encode
onehot_encoder = OneHotEncoder(sparse=False)
target_integer_encoded = target_integer_encoded.reshape(len(target_integer_encoded), 1)
input_integer_encoded = input_integer_encoded.reshape(len(input_integer_encoded), 1)
onehot_encoded_target = onehot_encoder.fit_transform(target_integer_encoded)
onehot_encoded_input = onehot_encoder.fit_transform(input_integer_encoded)


# Setup train and test sets
x_train, y_train = train_test_split(onehot_encoded_target, train_size=0.50)
x_test, y_test = train_test_split(onehot_encoded_input, test_size=0.50)
x_test = np.hstack((x_test, np.tile(x_test[:, [-1]], 3))) # Replicated the last column of x_test so it will be in same shape as x_train and y_train
print(x_train.shape, y_train.shape, x_test.shape) # (50, 95), (50, 95), (50, 95)


# Setup the Autoencoder
input_size = 95
hidden_size = 128
code_size = 32

input_values = Input(shape=(input_size,))
hidden_1 = Dense(hidden_size, activation='relu')(input_values)
code = Dense(code_size, activation='relu')(hidden_1)
hidden_2 = Dense(hidden_size, activation='relu')(code)
output_values = Dense(input_size, activation='sigmoid')(hidden_2)

autoencoder = Model(input_values, output_values)
autoencoder.compile(optimizer='adam', loss='binary_crossentropy')
autoencoder.fit(x_train, y_train, epochs=100)

# Predict the values
auto_predict = autoencoder.predict(x_test)
我对机器学习非常陌生,我想知道我上面写的逻辑是否正确。任何反馈都将不胜感激