- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564624 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174610
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
关于Logistics回归用于分类的解释
0 F7 h: V6 J; {0 @0 v$ u4 {logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
) N8 y3 _% _0 a" x/ W8 a* m# u, z( W) G8 w2 O! p
说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。# X; N# X0 j) Q, M* g
; H5 ^/ j/ v, m5 X$ O4 O
这条直线是怎么得出的呢?
o% C% O0 ^ t
# S% Z+ \2 V9 ^/ H首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
7 \0 ^. x# h6 t. r6 `6 j9 t* b+ [* x4 b6 Y
我们可以得出y=w0*x0+w1*x1...wn*xn$ C% k8 o) a: B3 V. j q; Z2 y# ~6 Q
1 o; B" {; K$ p: x: U
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
% C5 l4 ?8 q0 H4 |! U8 d$ k* N3 M1 @; M; a% \
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。5 P7 @% o: g1 ]- i2 R+ G
! E4 z& h2 q, u1 F5 q% c' X
u( n( v0 G8 L9 ]4 U p" L! D/ p) V) D! u/ t, v
! I: Z9 R, E l这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面( z6 a! [4 R8 e
7 a3 t8 l; j F- |( L假设dataMatIn=array([[3,3],[4,4]])
, N2 `1 ?4 C5 s% W8 V
/ X" H" B8 ?4 |( c) H3 ~. P那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])
$ C, [% |' N) J3 I! [9 H3 p1 p6 M( ^, _& K
然后就完成了。( ~9 W4 w7 w( k
6 s6 {% X4 Z& M4 ^2 X. G
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。0 T" Y# q- K4 L5 k. K* i" o
; K/ C* X9 G( |然后我们的新的w=w+a*array(x0,x1...xn)*error
# A" V. `8 R$ g9 ?8 f- v- P1 G! z" y2 _9 W: s" p: c, T7 [
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止9 G% R* f/ e7 Z" E
- X" V/ q8 L2 | `2 S最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1& O& u. B( C* [# B9 V4 z
7 A' c% r( J( l& ?, L' R% [) K7 E7 R- C5 d& g5 N
) l+ I; x& Y& O0 R% ~/ g7 w
|
zan
|