如何将我的训练数据输入到这个神经网络中
How to Input my Training Data into this Neural Network
我正在尝试用一段特定的代码来解决分类问题,但我无法准确理解我的数据是如何输入到神经网络中的。
我开始使用 1-of-C 虚拟编码对数据进行编码,这样我就可以在数据中保留分类上下文。我还没有完全完成数据编码,因为我不完全了解如何利用手头的代码进行输入。
这是迄今为止我的编码数据示例:
'In Raw format, for predicting Political Party Affiliation
'Age Sex Income Area Party
[0] 30 male 38000.00 urban democrat
[1] 36 female 42000.00 suburban republican
[2] 52 male 40000.00 rural independent
[3] 42 female 44000.00 suburban other
'Encoded Format
[0] -1.23 -1.0 -1.34 ( 0.0 1.0) (0.0 0.0 0.0 1.0)
[1] -0.49 1.0 0.45 ( 1.0 0.0) (0.0 0.0 1.0 0.0)
[2] 1.48 -1.0 -0.45 (-1.0 -1.0) (0.0 1.0 0.0 0.0)
[3] 0.25 1.0 1.34 ( 1.0 0.0) (1.0 0.0 0.0 0.0)
我对数字数据使用高斯归一化,对字符串数据使用 1-of-C 虚拟编码和 1-of-(C-1) 编码。最后一列数据是类别。
考虑到下面的代码;输入变量 X 接受以下格式的数据:
X=np.array([[1,0,1,0],[1,0,1,1],[0,1,0,1]])
我是否像这样输入我的数据,直到我循环遍历所有数据?
X=np.array([[-1.23,-1,-1.34,0010],[00000010,-.49,1,.45],[1000,00001000,1.48,-1]])
我已阅读以下 SO 问题:How is input dataset fed into neural network? 这有助于阐明流程。如何逐行输入特征,目标 feature/Label(在本例中为政党)作为每行的最后一个特征。这对我来说很有意义。在发布的代码中,我假设变量 Y 是目标。
考虑到这一点,我的输入应该是这样的:
X=np.array([[-1.23,-1,-1.34,0010],[00000010,0,0,0],[0,0,0,0]])
我只捕获第一行,将目标特征作为最后一个输入?
我不确定应该是哪一个。提前感谢您的帮助。
import numpy as np
#Input array
X=np.array([[1,0,1,0],[1,0,1,1],[0,1,0,1]])
#Output
y=np.array([[1],[1],[0]])
#Sigmoid Function
def sigmoid (x):
return 1/(1 + np.exp(-x))
#Derivative of Sigmoid Function
def derivatives_sigmoid(x):
return x * (1 - x)
#Variable initialization
epoch=5000 #Setting training iterations
lr=0.1 #Setting learning rate
inputlayer_neurons = X.shape[1] #number of features in data set
hiddenlayer_neurons = 3 #number of hidden layers neurons
output_neurons = 1 #number of neurons at output layer
#weight and bias initialization
wh=np.random.uniform(size=(inputlayer_neurons,hiddenlayer_neurons))
bh=np.random.uniform(size=(1,hiddenlayer_neurons))
wout=np.random.uniform(size=(hiddenlayer_neurons,output_neurons))
bout=np.random.uniform(size=(1,output_neurons))
for i in range(epoch):
#Forward Propogation
hidden_layer_input1=np.dot(X,wh)
hidden_layer_input=hidden_layer_input1 + bh
hiddenlayer_activations = sigmoid(hidden_layer_input)
output_layer_input1=np.dot(hiddenlayer_activations,wout)
output_layer_input= output_layer_input1+ bout
output = sigmoid(output_layer_input)
#Backpropagation
E = y-output
slope_output_layer = derivatives_sigmoid(output)
slope_hidden_layer = derivatives_sigmoid(hiddenlayer_activations)
d_output = E * slope_output_layer
Error_at_hidden_layer = d_output.dot(wout.T)
d_hiddenlayer = Error_at_hidden_layer * slope_hidden_layer
wout += hiddenlayer_activations.T.dot(d_output) *lr
bout += np.sum(d_output, axis=0,keepdims=True) *lr
wh += X.T.dot(d_hiddenlayer) *lr
bh += np.sum(d_hiddenlayer, axis=0,keepdims=True) *lr
print output
好问题。
首先使用来自 SciKit Learn
的预构建神经网络实现
接下来,将您的数据拆分为特征和标签(首先展平您的输入向量)
X_features=X[:,:-1]
X_labels=X[:,-1]
然后设置 SciKit MLP
model=MLPClassifier(args...)
适合你的数据
model.fit(X_features,X_labels)
瞧...
现在您可以使用
预测新输入
Y=model.predict(input_vector)
Nb:以真正的数据科学的名义,请记住将您的数据分成训练和验证集(例如 90/10)
我正在尝试用一段特定的代码来解决分类问题,但我无法准确理解我的数据是如何输入到神经网络中的。
我开始使用 1-of-C 虚拟编码对数据进行编码,这样我就可以在数据中保留分类上下文。我还没有完全完成数据编码,因为我不完全了解如何利用手头的代码进行输入。
这是迄今为止我的编码数据示例:
'In Raw format, for predicting Political Party Affiliation
'Age Sex Income Area Party
[0] 30 male 38000.00 urban democrat
[1] 36 female 42000.00 suburban republican
[2] 52 male 40000.00 rural independent
[3] 42 female 44000.00 suburban other
'Encoded Format
[0] -1.23 -1.0 -1.34 ( 0.0 1.0) (0.0 0.0 0.0 1.0)
[1] -0.49 1.0 0.45 ( 1.0 0.0) (0.0 0.0 1.0 0.0)
[2] 1.48 -1.0 -0.45 (-1.0 -1.0) (0.0 1.0 0.0 0.0)
[3] 0.25 1.0 1.34 ( 1.0 0.0) (1.0 0.0 0.0 0.0)
我对数字数据使用高斯归一化,对字符串数据使用 1-of-C 虚拟编码和 1-of-(C-1) 编码。最后一列数据是类别。
考虑到下面的代码;输入变量 X 接受以下格式的数据:
X=np.array([[1,0,1,0],[1,0,1,1],[0,1,0,1]])
我是否像这样输入我的数据,直到我循环遍历所有数据?
X=np.array([[-1.23,-1,-1.34,0010],[00000010,-.49,1,.45],[1000,00001000,1.48,-1]])
我已阅读以下 SO 问题:How is input dataset fed into neural network? 这有助于阐明流程。如何逐行输入特征,目标 feature/Label(在本例中为政党)作为每行的最后一个特征。这对我来说很有意义。在发布的代码中,我假设变量 Y 是目标。
考虑到这一点,我的输入应该是这样的:
X=np.array([[-1.23,-1,-1.34,0010],[00000010,0,0,0],[0,0,0,0]])
我只捕获第一行,将目标特征作为最后一个输入?
我不确定应该是哪一个。提前感谢您的帮助。
import numpy as np
#Input array
X=np.array([[1,0,1,0],[1,0,1,1],[0,1,0,1]])
#Output
y=np.array([[1],[1],[0]])
#Sigmoid Function
def sigmoid (x):
return 1/(1 + np.exp(-x))
#Derivative of Sigmoid Function
def derivatives_sigmoid(x):
return x * (1 - x)
#Variable initialization
epoch=5000 #Setting training iterations
lr=0.1 #Setting learning rate
inputlayer_neurons = X.shape[1] #number of features in data set
hiddenlayer_neurons = 3 #number of hidden layers neurons
output_neurons = 1 #number of neurons at output layer
#weight and bias initialization
wh=np.random.uniform(size=(inputlayer_neurons,hiddenlayer_neurons))
bh=np.random.uniform(size=(1,hiddenlayer_neurons))
wout=np.random.uniform(size=(hiddenlayer_neurons,output_neurons))
bout=np.random.uniform(size=(1,output_neurons))
for i in range(epoch):
#Forward Propogation
hidden_layer_input1=np.dot(X,wh)
hidden_layer_input=hidden_layer_input1 + bh
hiddenlayer_activations = sigmoid(hidden_layer_input)
output_layer_input1=np.dot(hiddenlayer_activations,wout)
output_layer_input= output_layer_input1+ bout
output = sigmoid(output_layer_input)
#Backpropagation
E = y-output
slope_output_layer = derivatives_sigmoid(output)
slope_hidden_layer = derivatives_sigmoid(hiddenlayer_activations)
d_output = E * slope_output_layer
Error_at_hidden_layer = d_output.dot(wout.T)
d_hiddenlayer = Error_at_hidden_layer * slope_hidden_layer
wout += hiddenlayer_activations.T.dot(d_output) *lr
bout += np.sum(d_output, axis=0,keepdims=True) *lr
wh += X.T.dot(d_hiddenlayer) *lr
bh += np.sum(d_hiddenlayer, axis=0,keepdims=True) *lr
print output
好问题。
首先使用来自 SciKit Learn
的预构建神经网络实现接下来,将您的数据拆分为特征和标签(首先展平您的输入向量)
X_features=X[:,:-1]
X_labels=X[:,-1]
然后设置 SciKit MLP
model=MLPClassifier(args...)
适合你的数据
model.fit(X_features,X_labels)
瞧...
现在您可以使用
预测新输入Y=model.predict(input_vector)
Nb:以真正的数据科学的名义,请记住将您的数据分成训练和验证集(例如 90/10)