神经网络参数整定

2024-10-03 04:31:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在测试一个自组织映射神经网络算法来执行模型回归。你知道吗

我用Python执行了一个基本测试,使用somoclu工具箱(在计算时间上非常有效)。我使用x²函数作为测试函数。然后,我尝试创建一个50x50点的SOM。我画了一系列曲线,在这里你可以看到原始点和SOM。插值对我来说并不令人满意,因为如果我学习不够,就会出现异常值,如果我学习太多,就会与原始点相吻合。我想要的是在正方形曲线的点之间有点。你知道吗

我知道在这种情况下,异常值并不“愚蠢”,因为它们试图连接点。但它不能作为一个回归模型在状态下使用。你知道吗

你能解释一下我的调谐参数哪里错了吗?或者如何删除异常值?你知道吗

enter image description here

我的代码:

import numpy as np
import matplotlib.pyplot as plt
import somoclu
import pandas as pd

data = pd.read_csv('10_samples.txt', sep='\t', header = 0)
data = data.as_matrix()

epoch_size = np.linspace(2,100,99)

for j in epoch_size:
    som = somoclu.Somoclu(n_columns=50, n_rows=50, data=data, kerneltype = 0, initialization = 'pca')
    som.train(epochs=int(j))

    a=som.codebook
    dim=a.shape
    som_ncodebook = [[]]
    for i in range(dim[2]):
        param = a[:,:,i]
        param = param.reshape(1,dim[0]*dim[1]) # raboute ligne à ligne 
        param = param.reshape(dim[0]*dim[1],1) # transforme en colonne
        if i == 0 :
            som_ncodebook = param
        else:
            som_ncodebook=np.append(som_ncodebook,param,axis=1)

    codebookplot = som_ncodebook


    plt.plot(codebookplot[:,0],codebookplot[:,1],'ob')
    plt.plot(data[:,0],data[:,1],'.r')
    plt.title('codebook epoch = '+str(j))
    plt.savefig('test_'+str(int(j))+'.png')
    plt.close()

Tags: 模型importdataparamasnpplt曲线