无法重新整理矩阵行

时间:2019-04-15 23:19:52

标签: python python-3.x machine-learning neural-network

我正在从头开始编写一个简单的神经网络。神经网络在方法echo -e "Subject: Test Mail\r\n\r\nThis is my first test email." |msmtp --debug --from=default -t vikrantgoutam16@gmail.com 中实现,该方法接受输入矩阵,输出标签以及其他参数。在遍历每个纪元之前,我只想按行(即观察值)对输入矩阵进行混洗,这是避免过度拟合的一种措施。我尝试了def simple_1_layer_classification_NN。发生了两件事。我在混洗步骤之前和之后拍摄了矩阵的快照(通过使用下面带有断点的代码来查看矩阵前后的值,并期望将其洗牌)。因此random.shuffle(dataset_input_matrix)应该在混洗之前给出矩阵的值,matrix_input应该在混洗之后给出矩阵的值。

matrix_input1

当我同时打印两个值时,得到的矩阵相同,没有任何变化。


input_matrix = dataset_input_matrix
# shuffle our matrix observation samples, to decrease the chance of overfitting
random.shuffle(dataset_input_matrix)
input_matrix1 = dataset_input_matrix

不知道我在这里做错了什么。 第二个奇怪的事情是,当我运行神经网络(在洗牌之后)时,其准确性急剧下降。在我获得60%-95%的准确度之前(只有极少数的50%)。

在对输入矩阵进行混洗步骤之后,无论运行模型多少次,我几乎都无法获得50%以上的准确度。考虑到改组似乎没有用断点进行检查,这很奇怪。无论如何,为什么网络精度会严重下降。除非我做的改组完全错误。

有2个问题:

1-如何仅对矩阵的行进行混洗(因为我只需要对数据集的观察(行)而不是特征(列)进行随机化处理。)

2-其次,为什么在我进行混洗时,它的准确性下降太多,以至于神经网络无法获得高于50%的值。毕竟,建议您将数据重新整理作为预处理步骤,以避免过度拟合。

请参阅下面的完整代码,并对大部分代码表示歉意。

在此先感谢您的帮助。

ipdb> input_matrix
array([[3. , 1.5],
       [3. , 1.5],
       [2. , 1. ],
       [3. , 1.5],
       [3. , 1.5],
       [3. , 1. ]])

ipdb> input_matrix1
array([[3. , 1.5],
       [3. , 1.5],
       [2. , 1. ],
       [3. , 1.5],
       [3. , 1.5],
       [3. , 1. ]])

ipdb> 

0 个答案:

没有答案