- 在线时间
- 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回归用于分类的解释5 R- t5 A3 Q. \: }( p0 C S! k8 c
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?; W3 } J! J# \/ x3 V2 u" v7 A
( ?1 j* o1 ]0 O; M' B0 `说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
2 w, m* g, W* T% |$ a! R
, O3 p) H+ W$ k这条直线是怎么得出的呢?) `- n+ L+ m1 C. k
5 ^+ X& \' R p首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
6 y" n" i% L7 F/ {7 n+ L8 T
& R F" n: O* ^0 M9 C0 y# R我们可以得出y=w0*x0+w1*x1...wn*xn
6 T$ `8 d D" _9 l. ~9 y. ?) ^/ n9 r% D
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法9 b" T( ~8 L7 n! f9 x6 K
6 N. r0 [* c2 Q: A根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。: i0 m, r, B$ c- P( k
$ C4 n1 ~& g3 j1 q! T/ G
7 q- {2 Y& b! z0 \$ g& F$ M* j% g; w/ d$ I; d+ x" C/ [
8 v; [% k! ]$ Y! m这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
# ^ E% e# W" O0 Y6 s
$ w$ v) G$ l: W% f( J* r( D假设dataMatIn=array([[3,3],[4,4]])
6 q! {* V# M- s. E/ h2 L. C; _$ `; s+ y, U
那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])
0 K5 N1 d% c, j" i
9 X" ]% z9 d* }' v然后就完成了。 n2 [( R8 J* [4 w. F; i
/ t" H b# Z9 C+ F4 b% Z
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。
; k1 \8 d# j( c7 ^' I# q s K
0 W: F/ p3 J3 l然后我们的新的w=w+a*array(x0,x1...xn)*error' K! c4 I& u4 N0 v( e r
+ d& e& E+ S( o/ C( K. x* C
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止
7 q) F7 p& V7 r7 ]$ T- G7 o
0 x9 ?4 q5 K- n- J/ E最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
" ^6 S7 f8 Z! _8 @' D4 t# Y1 `) J+ R! r0 i) w7 ?1 [, g# u
0 ?& \3 e. e# O d5 y
+ T% M: f# Q; a L- Z
|
zan
|