数学建模社区-数学中国

标题: 关于Logistics回归用于分类的解释 [打印本页]

作者: 杨利霞    时间: 2019-4-21 15:10
标题: 关于Logistics回归用于分类的解释
关于Logistics回归用于分类的解释1 n/ S: n+ A  f7 p3 w+ d" t
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
+ \! c+ |% _+ v  U" l! n; C* a9 x* b
说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。- l! ?% H$ S: r: q& Z

$ e( y0 n5 H$ Q) Z/ T6 m这条直线是怎么得出的呢?9 E" J. G6 X; I, K. j7 P' d

. [- o  ^% |2 t1 X首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
6 M" Q4 H+ S& q
2 e) }: _" i2 q; D我们可以得出y=w0*x0+w1*x1...wn*xn
3 W  ^$ G" U8 v5 B! t7 `9 S- [3 |: y1 M
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法, Z; w; \3 X% Z( @$ Q
1 v* G7 R) N  G  f9 S9 ?
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
  x. y" K" e6 J
% `1 G+ A: ~7 J3 ]- ~' n- r* b
6 R; D* B# S$ }0 g! i; i. l9 P# W+ w* Z& q5 n
* d% _: A# K; H6 D) `
这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
* |9 `. s0 ]. ~5 q* @5 ?3 C
6 y( h7 l, S, m假设dataMatIn=array([[3,3],[4,4]])
3 ^+ h+ b: B# w% Z
0 B4 ?+ v: r# g0 `那么dataMatIn的梯度就是dataMatIn.transpose()   => array([[3,4],[3,4]])5 G% y  h7 i  M

$ c. z3 k8 e5 L) @$ j然后就完成了。( o4 p4 C$ C5 q! _0 c! [( v0 G
8 y1 k" F! q% s
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。/ l1 ?0 z/ D0 a; _% Z, W
  |' U- j3 `1 `% y; u( p
然后我们的新的w=w+a*array(x0,x1...xn)*error
1 W  _! }4 Z8 }& i- i" q1 T$ ?, j, J1 u- _  G
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止
& c, e9 ]& s: E8 S: H
; K% t! z# {2 B0 H6 T3 s" j: k最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于11 ]7 j5 ^# m6 d  j

7 r. s! i0 A+ v# n7 G; z# `5 C
! @4 U7 ~. E9 E6 T5 P

数学建模解题思路与方法.pptx

117.69 KB, 下载次数: 3, 下载积分: 体力 -2 点






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5