python - 如何使用 Neupy 获得由神经元表示的点
问题描述
我正在使用 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 有 date、lat、lng 字段。我想每天计算每个神经元的点数。如何进行?谢谢
解决方案
您可以使用该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]])
预测返回 one-hot 编码的神经元标识符。您可以通过在输出上应用 argmax 来获得神经元的索引
>>> prediction = sofm.predict(data)
>>> neuron_index = prediction.argmax(axis=1)
您也可以使用此信息来解决第二个问题。
>>> 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
推荐阅读
- python - Python Flask Jinja 在另一个扩展的 html 中扩展 html
- amazon-web-services - 用于 aws-glue python shell 作业的 aws rds/mysql 安全组
- python - How to pass multiple arguments in a cleaner way in python
- docker - 如何在 docker-compose 产生的 kafka 容器上安装 kafkacat
- java - Android CalendarContract.Instances table returns old values
- activemq - 带有 ReplicatedLevelDB 存储的 ActiveMQ 为日志文件保持文件描述符打开,因此操作系统无法释放空间
- javascript - 如何使用 Babel 7 和 Gulp 添加选择的 polyfill?
- android - 更改默认 TextInputLayout 样式?
- react-native - 如何将新状态的json对象中的特定数据保存到本机反应中
- flutter - Onesignal promptPermission() 在 Android 中不适用