数学建模社区-数学中国
标题:
关于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" q
1 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时等于1
1 ]7 j5 ^# m6 d j
7 r. s! i0 A+ v
# n7 G; z# `5 C
! @4 U7 ~. E9 E6 T5 P
数学建模解题思路与方法.pptx
2019-4-21 15:11 上传
点击文件名下载附件
下载积分: 体力 -2 点
117.69 KB, 下载次数: 3, 下载积分: 体力 -2 点
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5