• 数学之路(3)-机器学习(3)-机器学习算法-神经网络[9]


    神经网络线性分类器

    编写代码并将其线性分类过程封装成PYTHON的一个模块,调用代码如下:


    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    #email:myhaspl@qq.com
    #author:麦好
    #2013-07-25
    #线性神经网络分类
    import mplannliner as nplann                         
    traindata1=[[[9,25],-1],[[5,8],-1],[[15,31],-1],[[35,62],-1],[[19,40],-1],[[28,65],1],[[20,59],1],[[9,41],1],[[12,60],1],[[2,37],1]]
    myann=nplann.Mplannliner()
    #样本初始化
    myann.samples_init(traindata1)
    #学习率初始化
    myann.a_init(0.1)
    #搜索时间常数初始化
    myann.r_init(50)
    #最大训练次数
    myann.maxtry_init(500)
    #期望最小误差
    myann.e_init(0.05)
    #训练
    myann.train()
    #仿真,测试,对未知样本分类
    myc=myann.simulate([35,68])
    print "[35,68]"
    if myc=="+":
        print u"正类"
    else:
        print u"负类"
    
    #将测试点在最终效果图上显示出来,将它加入drawponint集,测试点表现为"*",并且色彩由其最终的分类结果而决定
    myann.drawponint_add([35,68])
    
    
    myc=myann.simulate([35,82])
    print "[35,82]"
    if myc=="+":
        print u"正类"
    else:
        print u"负类"
    myann.drawponint_add([35,82])    
    myann.draw2d()
    
    
    #下面直接使用默认参数进行训练
    traindata2=[[[9,25,30],-1],[[5,8,12],-1],[[15,31,49],-1],[[35,62,108],-1],[[19,40,60],-1],[[28,65,98],1],[[20,59,72],1],[[9,41,38],1],[[12,60,46],1],[[2,37,18],1]]
    myann2=nplann.Mplannliner()
    myann2.samples_init(traindata2)
    myann2.train()
    myc=myann2.simulate([35,68,110])
    print "[35,68,110]"
    if myc=="+":
        print u"正类"
    else:
        print u"负类"
    


    训练分类结果为:

    ...................

    第179次调整中。。。误差:3.464102
    第180次调整中。。。误差:2.828427
    第181次调整中。。。误差:2.828427
    第182次调整中。。。误差:3.464102
    第183次调整中。。。误差:2.828427
    第184次调整中。。。误差:0.000000
    麦好   myhaspl@qq.com
    http://blog.csdn.net/u010255642
    [35,68]
    负类
    [35,82]
    正类

    ...................

    第10次调整中。。。误差:4.000000
    第11次调整中。。。误差:4.898979
    第12次调整中。。。误差:4.000000
    第13次调整中。。。误差:4.000000
    第14次调整中。。。误差:4.000000
    第15次调整中。。。误差:4.000000
    第16次调整中。。。误差:4.472136
    第17次调整中。。。误差:2.828427
    第18次调整中。。。误差:4.000000
    第19次调整中。。。误差:4.000000
    第20次调整中。。。误差:4.000000
    第21次调整中。。。误差:4.000000
    第22次调整中。。。误差:4.000000
    第23次调整中。。。误差:4.472136
    第24次调整中。。。误差:3.464102
    第25次调整中。。。误差:4.000000
    第26次调整中。。。误差:4.000000
    第27次调整中。。。误差:4.000000
    第28次调整中。。。误差:4.000000
    第29次调整中。。。误差:4.000000
    第30次调整中。。。误差:4.000000
    第31次调整中。。。误差:3.464102
    第32次调整中。。。误差:0.000000
    麦好   myhaspl@qq.com
    http://blog.csdn.net/u010255642
    [35,68,110]
    负类

    效果图为:

    模块要求安装numpy和matplotlib

    windows下的下载地址为:

    https://pypi.python.org/pypi/numpy/

    http://matplotlib.org/downloads.html


    线性模块库在csdn资源中下载:

    http://download.csdn.net/detail/u010255642/5816519

  • 相关阅读:
    转载:iOS开发的22个奇谲巧技
    解决pathForResource返回nil, 无法读取plist文件问题
    小项目三:登陆窗口
    小项目一: UIButton的使用
    转载:iOS 8 自适应 Cell
    转载:iOS 8 AutoLayout与Size Class自悟
    转载:总结iOS 8和Xcode 6的各种坑
    [转]Xcode6中如何添加pch文件
    UIButton和UIImageView的区别
    控件的属性
  • 原文地址:https://www.cnblogs.com/aukle/p/3217659.html
Copyright © 2020-2023  润新知