- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 566837 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 175274
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
关于Logistics回归用于分类的解释# Q, q1 r4 a! t" I6 s8 @" z# q9 x% s
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
/ q* ]- l# ]4 V$ x) ?, g; g& z( L$ ?5 \8 S
说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
' N" T5 u3 Y' N) X: b
' h) a m/ k2 D" d/ \7 q1 g9 J1 i这条直线是怎么得出的呢?! o# m' T; v+ l$ \/ W
a& ?* g, h/ g1 R$ f4 }5 b
首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y6 ^0 b. P" C" O% e' t
$ b) d' O6 i5 b! P% e我们可以得出y=w0*x0+w1*x1...wn*xn0 p! }) ~$ u5 I
) U4 [) T/ N) |' U
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
, P9 G4 C$ w/ D) r' |0 d
" _8 b5 w* ^& G* f% t根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。) H! f; g( P0 @/ O
) [5 c) ?5 B* R
' Q! ?. U* O' {: V9 h }
! c% W0 h; p7 E7 H; l, V& e T& Y
3 @# s% ^$ ]9 l
这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
9 J# y9 P6 h5 d+ M4 h/ P
9 F# t5 T3 N4 m6 w假设dataMatIn=array([[3,3],[4,4]])' q1 I! T0 n& i% f
3 z/ W5 @* n; R: _+ j
那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])2 L5 Q/ z5 h8 t9 r3 m( p/ F
) k5 _* p0 a) ~: B P2 h$ t
然后就完成了。# }# ^8 U) U) Q4 t6 K& \" l
7 E. M8 z9 y* W5 E
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。( j6 C% U* G2 x
& c! z, n$ p$ q/ \
然后我们的新的w=w+a*array(x0,x1...xn)*error' z8 H: V; l- l
+ X" L9 j/ V3 x- K% {: T4 `2 o一般设置循环多少次然后停止或者当error小于多少值得时候算法停止8 i! g7 }1 t! W9 F& l- o& b
; Q; o% _# z& z f9 Z& [最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
$ R6 Q P' t! d
% q4 d: f, k9 Q9 t" A# ?; M& f, H E5 F' H# Y5 Q2 g7 a& T" H
' c! Q' n" [1 ?- z& x3 N |
zan
|