- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565556 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174890
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
关于Logistics回归用于分类的解释" W* a8 I4 x, k
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
2 u0 M& ?2 A+ \1 ]7 [1 g
$ k1 K+ o; d0 n$ Z说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
- M2 E+ u* a1 y& w2 \* i' t$ Q$ q1 {0 m- ]! n% [6 ^$ u
这条直线是怎么得出的呢?
* ?* A4 d# _7 }
* s! m- _1 M) I首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
7 g' Z& L. U1 H; y( W8 c2 S- q2 _ [" e
我们可以得出y=w0*x0+w1*x1...wn*xn6 ^" @1 h3 Z t1 z( q n% O
, ` K9 a- Z B/ r4 M' ]8 d( a
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
( d; G9 r3 z l$ p" w- W8 `$ W( x8 n2 o' m# |
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
3 w& D. F7 z2 |3 v' R2 k3 U$ b
/ s$ j$ `! Z* r: W; W" @0 v I4 o7 `+ h, n% ?0 N
$ t+ \9 Z* I+ ~: ^$ `" U
" L0 |( P: B) K
这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
- g8 r' [* K% O! `2 p! x% l
& U: R6 I+ Q4 D! a$ P假设dataMatIn=array([[3,3],[4,4]])
$ X9 m0 l% _, o% D. K$ b* W" V. _+ H# X% {" E+ |
那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])
: v4 B4 a$ L, a5 w
5 [& E, o* Q. q& z& d5 Q然后就完成了。+ E1 A3 t0 o* G5 p; {8 U
# b$ e6 Z+ c) B继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。
, w4 Q7 v* m4 n2 z3 ?; w' @
: [# S* T7 Q) T然后我们的新的w=w+a*array(x0,x1...xn)*error
4 N7 L# y" o6 }" m: ^, j* O! Z; F, ~# Y4 M
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止7 L/ f5 v( m) l8 d ] R. B& L6 x
. Z3 f e4 X3 ^# ~6 r& }2 S& H最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
+ n* U: C+ `4 G- O: f4 t6 ?, m; S; ?- i7 t4 G
% {; n4 |8 T7 @) R9 I/ c1 S
- A, D* j/ Y5 y. z0 M8 W, V
|
zan
|