数学建模社区-数学中国

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

作者: 杨利霞    时间: 2019-4-21 15:10
标题: 关于Logistics回归用于分类的解释
关于Logistics回归用于分类的解释; A5 E( ^: H" y; K$ P) \$ X
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
3 V" N; p6 _; X7 ~  \
; A  m& G1 a3 v3 R+ P说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
8 m' }* \6 K. T# @8 h6 b7 R2 i4 S3 h* e; w, d
这条直线是怎么得出的呢?
; c, l1 e( M& F- S' E: _
7 `& Q3 S1 @1 M* [% S) _3 n/ G首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
' |; V$ v* Y# x7 t! ]6 n. b8 Q
3 s. E' K1 L" A2 c- ]8 I我们可以得出y=w0*x0+w1*x1...wn*xn
" [+ U; b, r5 Y$ c" T* D
" o% K; T: \0 ^" N5 O5 I然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
4 u* U* o7 L4 V: g9 S8 s% S# \: d  j- k. `/ s
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
6 @/ u* g# M6 i; D! a. f3 l+ I
0 M8 q( n' [7 a# k* ]% W7 ~3 {
' f& M) D( h, o/ |1 {# C0 ]; [1 c3 m: F) A2 E
7 ]! G0 ?/ G5 j7 l% j# W; Q; V) V' O
这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面+ N$ X- \/ T- T

, ?; m  F! \/ c; _$ F8 @: z假设dataMatIn=array([[3,3],[4,4]])
1 A( F9 A0 B3 [5 M% P; y% k: V6 i$ ?2 |: @3 n
那么dataMatIn的梯度就是dataMatIn.transpose()   => array([[3,4],[3,4]])  {5 E6 N+ h7 b6 \7 A
- s$ N- i) ~2 v6 J# E' X* z
然后就完成了。7 N4 c2 U- ~' v$ i6 E/ {
% N; O- `  j" ~: ]5 x' W" p) p
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。
+ ]+ a, W$ y3 A! R- R, ~  V5 z2 u  ?) n+ s/ D! _
然后我们的新的w=w+a*array(x0,x1...xn)*error
1 x) v: m4 O$ _' h( X* L+ r; _+ v, A: e" F9 a( c
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止
- c7 J' {' i  h: b3 l& v9 g
8 o& M6 `# F4 c8 h' I. |最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1  H6 C9 M% Q2 ~% n: V9 ?
% {5 N" N  n8 r' H
# E5 O" s  L2 C6 \
6 m5 s3 ]3 O9 J) V, k

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

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






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