- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564640 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174615
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
关于Logistics回归用于分类的解释
' s+ I) `( e' j J5 i3 Q$ Ylogistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
, Z; a: D4 G0 M' \+ ~) j! R
- t4 U0 Z# c" P* N; u9 ?! ~说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。: Q. x* M9 y b* X5 e' X
5 g4 ?7 z% L7 T% |7 z这条直线是怎么得出的呢?
. w* ?! v3 u' r$ `2 j4 x3 p' w$ _* C. O. R5 G
首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
2 ?- o6 m' A1 I, t# T K
* o+ P, Z3 d) m# t" p0 g我们可以得出y=w0*x0+w1*x1...wn*xn" I; s' k' c; [( ^. X# {0 y
1 V3 x3 u, @4 h7 |) [然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法1 `. Y6 t9 i2 N0 `7 G6 E
7 V0 ~: }7 a) I根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。! I3 t. u4 d/ i
' {7 T4 S# J6 L3 d& ^5 s
9 W( W6 H3 C% F! t3 | a( _: B1 u- e
" a6 e4 B P# X& C& o这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面# Y- I! O" a g4 G2 M, v% C
1 l9 p- P4 F0 X5 v
假设dataMatIn=array([[3,3],[4,4]])- _; ]8 D, F: `; q" F6 G" J# l
% x+ R7 c) I2 w$ |9 y, O* I' N那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])
, K1 Q9 n5 f8 B% a
, C* t, X5 m( N: N+ ^7 l! I然后就完成了。5 Z q: f5 I" X: b" O
' D9 N- b) J; r% h7 Z; W继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。& \8 b* B9 A0 d3 r; k6 G
1 [7 L' f( T) P
然后我们的新的w=w+a*array(x0,x1...xn)*error7 l; k0 ^( c1 n
6 p$ v/ X8 n" k
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止
% _2 ]8 r! U. s5 l! n5 B, q8 f7 ]: l8 C- H
最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
6 p0 J' e1 E* N- `+ z0 H0 s: k2 J4 l* i2 \8 [. |2 \! o
0 X) x0 O( ]% ?4 L# f% l
- u8 H0 t, P6 Q9 p' L$ R |
zan
|