在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 563387 点 威望 12 点 阅读权限 255 积分 174239 相册 1 日志 0 记录 0 帖子 5313 主题 5273 精华 3 分享 0 好友 163
TA的每日心情 开心 2021-8-11 17:59
签到天数: 17 天
[LV.4]偶尔看看III
网络挑战赛参赛者
网络挑战赛参赛者
自我介绍 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组 : 2018美赛大象算法课程
群组 : 2018美赛护航培训课程
群组 : 2019年 数学中国站长建
群组 : 2019年数据分析师课程
群组 : 2018年大象老师国赛优
关于Logistics回归用于分类的解释 , L+ k1 N( T' B2 l! Z
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?' H; |+ H& x6 [, `6 j% L4 O
) v' k* o4 e/ P I! z7 ` 说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
( L* ~2 w7 T* F3 H3 Q# D * q+ f7 Q. N) M
这条直线是怎么得出的呢?( Y" i1 c! t& r4 z0 f
+ M9 a4 u: e, G 首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y0 r' V! w4 s, m7 I
d4 I+ n q3 v0 A8 u9 F2 c2 R" x
我们可以得出y=w0*x0+w1*x1...wn*xn* ?. m# S5 t. d- K E% k3 T
i6 G3 `* b) ]5 M# u4 y9 g
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法( m! h0 @: y7 @! z
1 o; }4 x/ [% U' j9 v% | 根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
p J8 P3 `) i4 I/ I 5 c( V- t; W" G" J* n6 |
% e0 J' k7 q9 ]- s# A
' }4 O/ h: A+ z2 ^
; g$ }/ o5 p3 c% z- J4 E. w4 } 这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
- h' V3 O& ^* g7 _
4 f: p% Z( a& K0 V' r( ?, F2 N- T 假设dataMatIn=array([[3,3],[4,4]])
6 l3 d. t R6 r! e) z8 M6 C & O j1 w* d( x n* m' c; F8 u* }
那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])
) {$ O' f8 @% g E# h' O& ^" F; n
. }6 [( }; l$ V- I8 j 然后就完成了。! ^6 H8 s; L3 g0 w* A4 L( O
; x7 Q$ K+ V2 o; y* T" o1 y( t
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。
6 F% k* i! j [+ ~ 3 ?& T) }$ Z' o: m
然后我们的新的w=w+a*array(x0,x1...xn)*error; l- y, w6 i! e2 G0 b) ~
3 a* s0 Z3 G, P; p: D
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止 d6 O( s6 A1 ], J
$ G* M1 W# y" s# O& Y
最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于14 |+ ]7 d, v7 T7 |
, k; B4 f' T. F1 D" T1 t
?. y8 y, j* F 5 d1 o/ u8 o" `' g1 `+ b# O
zan