数学建模社区-数学中国
标题:
关于Logistics回归用于分类的解释
[打印本页]
作者:
杨利霞
时间:
2019-4-21 15:10
标题:
关于Logistics回归用于分类的解释
关于Logistics回归用于分类的解释
T9 I, U$ v& a! v
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
1 v: @# `3 U( |
9 v. i8 P) \ |; g( d; o8 G9 J
说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
4 a3 x/ F" T8 v4 H4 Y* _( u% p, |
9 W5 r! d3 Y4 Y
这条直线是怎么得出的呢?
C/ P: [1 B1 F3 y1 \
* n% [ T' M) I% V6 K: f j2 S- o
首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
% B+ I. ~ |) E! q( }. _
2 Q. {% I, \6 Q0 W' \+ ] C n* x( U
我们可以得出y=w0*x0+w1*x1...wn*xn
+ n7 w' T) l! ?! e! E6 L: C. N
! o2 E0 F& v; m6 }$ R9 D D& K! T
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
$ l u( h4 E% b J. U& X
2 e. h4 m/ X# _. J* _1 T6 V
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
, u/ ]9 b0 ^' X1 f1 a7 h
1 [- D( `' u, _: ^
- W1 \2 y2 R7 R
& S" x7 U1 s9 I9 \) P
: I: X7 k2 I1 |$ l+ D4 y9 J
这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
+ o$ j: D8 w9 m1 x
/ ?4 d3 Y( [2 x# R$ ^- f) ?
假设dataMatIn=array([[3,3],[4,4]])
' v# p0 r( j4 f# M
7 ~ O; d! b' _
那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])
' f6 F! p0 T6 }) Q4 K+ N
9 L1 F! b% u! H- R( M6 Z
然后就完成了。
2 S6 k& z* b3 S& u
) D+ m+ r8 A* {& A6 k3 ~
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。
% q8 D: E( O8 ^. M4 v! W1 R7 ?' W
) ?" `4 a# |9 |& }+ Y4 V1 m
然后我们的新的w=w+a*array(x0,x1...xn)*error
# p4 m, X b6 }* X: ^
( P4 g, K/ w# g( I$ o9 X9 ]7 \: u
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止
n( v0 F) \& _$ V+ f4 M3 {! i
# s9 u) J2 z7 n; s0 k3 H. Y+ N
最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
; {$ R; `& r/ \1 @) L, Z& \; z8 B
6 Z- U/ r, m% t7 y7 f
; i6 ~; U, k# ^* F; \( u, Z! h
$ g/ x0 N2 t0 x% D0 A
数学建模解题思路与方法.pptx
2019-4-21 15:11 上传
点击文件名下载附件
下载积分: 体力 -2 点
117.69 KB, 下载次数: 3, 下载积分: 体力 -2 点
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5