1

次のコードでニューロンのセットを取得するために neupy を使用しています。

All = pd.read_csv("inputfile.csv")
df = pd.DataFrame(All)
coords = df.as_matrix(columns=['lat', 'lng'])


sofmnet = algorithms.SOFM(n_inputs=2,
                          n_outputs=4,
                          step=0.5,
                          show_epoch=1,
                          shuffle_data=True,
                          verbose=True,
                          learning_radius=1,
                          features_grid=(4, 1),)

sofmnet.train(coords,epochs=20)
neuronlocations = sofmnet.weight.T

1-各ニューロンに関連付けられたポイントのセットを読み取る/取得する方法は? 2-inputfile.csv には日付、緯度、経度のフィールドがあります。毎日の各ニューロンのポイント数をカウントしたい。どうやって進める?ありがとう

4

1 に答える 1

0

このメソッドを使用してpredict、最も近いニューロンのエンコードを見つけることができます。公式ドキュメントの例を次に示します。

>>> import numpy as np
>>> from neupy import algorithms, environment
>>>
>>> environment.reproducible()
>>>
>>> data = np.array([
...     [0.1961, 0.9806],
...     [-0.1961, 0.9806],
...     [-0.5812, -0.8137],
...     [-0.8137, -0.5812],
... ])
>>>
>>> sofm = algorithms.SOFM(
...     n_inputs=2,
...     n_outputs=2,
...     step=0.1,
...     learning_radius=0
... )
>>> sofm.train(data, epochs=100)
>>> sofm.predict(data)
array([[0, 1],
       [0, 1],
       [1, 0],
       [1, 0]])

Prediction は、ワンホット エンコードされたニューロン識別子を返します。出力にargmaxを適用することで、ニューロンのインデックスを取得できます

>>> prediction = sofm.predict(data)
>>> neuron_index = prediction.argmax(axis=1)

この情報を使用して、2 番目の問題も解決できます。

>>> df['neuron_index'] = neuron_index
>>> df.groupby(['date', 'neuron_index']).count()

                         lat  lng
date       neuron_index
2018-05-06 0               1    1
2018-05-07 0               1    1
           1               2    2
于 2018-11-12T20:24:09.373 に答える