SOM机器学习

#--coding:utf-8--import matplotlib.pyplot as pltimport pandas as pdimport numpy as npimport sysfrom time import timepd.__version__import sompy.sompyhelp(sompy.hitmap.HitMapView)### A toy ex
摘要由CSDN通过智能技术生成
#--coding:utf-8--
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import sys
from time import time
pd.__version__
import sompy.sompy

help(sompy.hitmap.HitMapView)

### A toy example: two dimensional data, four clusters
dlen = 200
Data1 = pd.DataFrame(data= 1*np.random.rand(dlen,2))
Data1.values[:,1] = (Data1.values[:,0][:,np.newaxis] + .42*np.random.rand(dlen,1))[:,0]
Data2 = pd.DataFrame(data= 1*np.random.rand(dlen,2)+1)
Data2.values[:,1] = (-1*Data2.values[:,0][:,np.newaxis] + .62*np.random.rand(dlen,1))[:,0]
Data3 = pd.DataFrame(data= 1*np.random.rand(dlen,2)+2)
Data3.values[:,1] = (.5*Data3.values[:,0][:,np.newaxis] + 1*np.random.rand(dlen,1))[:,0]
Data4 = pd.DataFrame(data= 1*np.random.rand(dlen,2)+3.5)
Data4.values[:,1] = (-.1*Data4.values[:,0][:,np.newaxis] + .5*np.random.rand(dlen,1))[:,0]
Data1 = np.concatenate((Data1,Data2,Data3,Data4))


fig = plt.figure()
plt.plot(Data1[:,0],Data1[:,1],'ob',alpha=0.2, markersize=4)
plt.show()
#fig.set_size_inches(7,7)

###以下就是SOM机器学习的过程。参数注释在源码中
mapsize = [20,20]
som = sompy.SOMFactory.build(Data1,mapsize, mask=None, mapshape='planar', lattice='rect', normalization='var', initialization='pca', neighborhood='gaussian', training='batch', name='somp')
#data1表示要训练的数据,mask:隐藏层,mapsize,二维平面大小,如果是单一数字,表示节点数量。mapshape:输出层形状。lattice:输出层的晶格形状。 initialization:初始化,有PCA和random;neighnorhood:邻居调整方式
#training:训练方式seq, batch两种 name:验证somy
# this will use the default parameters, but i can change the initialization and neighborhood methods
som.train(n_job=1, verbose='info')  # verbose='debug' will print more, and verbose=None wont print anything
#n_job表示并行化的任务数。verbose:debug info none

"""
v = sompy.mapview.View2DPacked(50, 50, 'test',text_size=8)
# could be done in a one-liner: sompy.mapview.View2DPacked(300, 300, 'test').show(som)
v .show(som, what='code
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值