- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564647 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174617
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
关于Logistics回归用于分类的解释
: X. M2 C0 a( V8 hlogistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
' [( ]6 B ~! }7 c4 Q0 n1 O3 }4 ^7 j; a0 H6 A
说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
: s0 [" J) v% j" }( E: c0 \* I$ Z& c
这条直线是怎么得出的呢?
) N3 G' \! O% c* E9 e
7 e; C% u" d! a- E5 u; R首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y0 C8 `) Q( y9 l, a1 g
+ G4 p! d# n7 _& O9 w. H7 K; B我们可以得出y=w0*x0+w1*x1...wn*xn( l9 L; P+ N$ D: q
7 N! k' Q2 L( h
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法2 I/ k6 C3 o- e
, g, ^% ?; _' z根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。' O0 \6 Z, f! ^- `; S* |2 _
j; J+ R1 S( h1 {) r- w: a8 @1 K
6 X1 A- f0 a% ]& N( m9 s' `
' ^' N8 }9 O# w
' O0 G0 ~% c# l3 [8 o这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面( k) e/ }( E: V
$ w% a7 H; s: G2 u/ y7 e" E# u假设dataMatIn=array([[3,3],[4,4]])# m$ I$ A- V/ Q( w8 u5 V
4 u3 ?, v8 `; ^- B5 e那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])8 D& E6 M0 X+ y
z' R4 w! Y( @2 E) P
然后就完成了。
" ?9 U' }: x2 @: Y
) w/ T$ @; Z: o1 X1 t继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。
% m, T( |% Q/ i/ C" \" d/ i5 v( Z; X: K" n* N3 ]+ V" b p
然后我们的新的w=w+a*array(x0,x1...xn)*error- I' E. t. _+ Z, I
6 M1 K! j+ ?; A/ y+ w
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止 \% ?; |6 G; O4 B9 l
! C3 V, }) E6 o7 r4 E
最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1% [5 L" q" N4 q0 I
" Z1 g" R! O& x- f" O9 n( r4 U: q( O) s$ d4 O$ e$ c+ e
8 E2 O2 J! W# [! W4 z4 I
|
zan
|