- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565528 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174881
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
关于Logistics回归用于分类的解释
9 H1 B, j! l- K% t+ Ulogistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
4 A) y* x# r O2 v& D
$ X% O( Q- k. h* t6 D0 Y. ]说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
* J0 E5 |, V9 j: u/ B h' r0 D' c* L8 a& [ A# P" a u4 Z
这条直线是怎么得出的呢?0 o1 o+ L! m4 K9 P
E2 E4 ?' N) Z3 h4 F+ s9 `首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
1 v# A- Z3 K; ^, E( @; {2 I1 P& c# l1 r- M$ y
我们可以得出y=w0*x0+w1*x1...wn*xn( ~3 y9 h7 q: p* @
* ~, E! M+ D/ m8 @- F
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法$ P+ a' h+ j" G2 \+ f
% k0 O( G& N# U/ y h7 E. p
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
+ t4 G: p5 F/ I M( P
8 Z( s/ s& n, J6 \
1 V# i, g* N9 s2 _& _% f. `# n+ k* H) j; ]; {
* M7 k; ?/ |; v) ]; H+ H* a" C这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
9 i9 j% O4 G* b/ m: J5 T3 c! I" J& m) p+ P
假设dataMatIn=array([[3,3],[4,4]])
9 i" F( e. L1 N' z! p7 W0 D( u$ | d6 a) J6 I
那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])
. E1 g5 A8 _& z6 _0 Q; u# @ c' U0 B3 g+ E0 m) l3 u) Z
然后就完成了。/ M4 m: ?; y( y e# [9 G
~! v& |, }3 H% C9 y% ~ Y继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。8 l2 t, G2 K# Z0 u/ a
$ e( m" T& J( `7 t1 \1 z
然后我们的新的w=w+a*array(x0,x1...xn)*error- r6 K) }& o$ E* T$ ~
/ j U5 Y4 W. P$ [) O5 G一般设置循环多少次然后停止或者当error小于多少值得时候算法停止
* _, S0 `. i r& `$ \8 {( G9 y# Q4 R$ n5 ]9 A
最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
' b7 J$ f" R/ \* ^3 P% Y' q) Z8 d. L9 Q1 D$ L
5 e4 a: E1 K4 `' B8 `
8 ~9 x* Z) V# ]+ v6 @
|
zan
|