在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 566823 点 威望 12 点 阅读权限 255 积分 175270 相册 1 日志 0 记录 0 帖子 5313 主题 5273 精华 3 分享 0 好友 163
TA的每日心情 开心 2021-8-11 17:59
签到天数: 17 天
[LV.4]偶尔看看III
网络挑战赛参赛者
网络挑战赛参赛者
自我介绍 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组 : 2018美赛大象算法课程
群组 : 2018美赛护航培训课程
群组 : 2019年 数学中国站长建
群组 : 2019年数据分析师课程
群组 : 2018年大象老师国赛优
关于Logistics回归用于分类的解释 {1 O, r3 R. c- M# M' s; a) g4 S
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?- D! G' I4 R5 q/ [( f
4 X" T& P2 K+ y# P) L 说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
. ?6 A0 ]4 r7 z8 A" t; o" o' ^
0 C; I( J, d" ^9 T! { 这条直线是怎么得出的呢?
+ e1 S2 |* n5 w: U& W$ ~% T% o' Q3 p' k - s1 u( S# x! D, k
首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
( r5 |0 y9 b0 K( }) d
* J0 j' s% V5 \5 A2 v1 o0 p$ s 我们可以得出y=w0*x0+w1*x1...wn*xn6 A" n$ Q3 Q& u T
( ]6 \* s, O* X8 Z. w
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法/ H# D: C, Y+ b1 w% I
* G% d. [0 t5 o 根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。! T0 A. ?) K4 Y- t
! q/ S2 [* K! N
$ Z$ r( i9 J" B, a2 x! `( e8 u3 K5 V ; X! [" x: Q/ @3 z
% K# O4 |# q# H3 x& O7 ?" _, H, o' l 这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面- ?0 K9 b( R) @- Z- }/ H. D
/ m6 W+ ]. X5 h% Q2 m4 i 假设dataMatIn=array([[3,3],[4,4]]): H0 l6 K: j: l( v
+ r; L" G! v: R4 X
那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])" ~% G( O) h4 i& [! ~
( R$ p+ q; r1 J) W 然后就完成了。
9 U% j! d& \: S' g, ]- M
2 |' C v7 x4 ~1 u 继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。% k0 K& V$ a9 B' S
- I; m. {" ]( I% M+ I9 N7 n- Z. k
然后我们的新的w=w+a*array(x0,x1...xn)*error: c( G( F2 x' p+ d; z
; C" v1 s' a' w4 [1 o" M, b. x3 z
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止6 I5 u/ @- h# r( D! n; q9 M
. O" k% e1 ^& y" H6 {! `" ^ 最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
~$ e {+ s) Q4 U8 _! M # `+ ^% L% a3 t# X8 A3 C7 r
+ a. m0 w$ S: @( m$ g- g, f 2 y5 x0 J* w) {+ S2 z! @
zan