在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 564620 点 威望 12 点 阅读权限 255 积分 174609 相册 1 日志 0 记录 0 帖子 5313 主题 5273 精华 3 分享 0 好友 163
TA的每日心情 开心 2021-8-11 17:59
签到天数: 17 天
[LV.4]偶尔看看III
网络挑战赛参赛者
网络挑战赛参赛者
自我介绍 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组 : 2018美赛大象算法课程
群组 : 2018美赛护航培训课程
群组 : 2019年 数学中国站长建
群组 : 2019年数据分析师课程
群组 : 2018年大象老师国赛优
关于Logistics回归用于分类的解释 . v( @9 M0 X; \+ o& y( A) I
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?% T/ u. O; h$ t9 I# v4 J
. N% d1 U; x: Q
说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。' G5 N; Y1 d* H) L p% M
% D& T. v ^. n, \ 这条直线是怎么得出的呢?& M. e* n! K1 d. R3 |, z
* E2 @0 n( i! s+ @* B# @' ? 首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y6 l6 m; d& u) ~ I p' d- M# I
/ q1 U/ l& c5 S" w% j5 S 我们可以得出y=w0*x0+w1*x1...wn*xn
& y, N! i% Z% ]$ I7 O' A* S* Y7 f 8 @/ I* W$ `: [/ b3 b5 T
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
, R$ d8 o% b, Y) c; i2 s0 S
* x# v7 z4 t1 ?6 k% X5 N 根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。3 e" O, E; }& H# W
6 n8 R+ V: P# z# H4 ?/ z
! [ r: U' R+ B5 S; } ) O' Y, u3 {% g! L5 M4 [
O8 T) o- }: ~! a6 L1 J 这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
5 k9 k- }3 C" v/ b0 @4 X. e
2 ~4 y8 }% y; J( Q* l2 ]* n; v5 }& P 假设dataMatIn=array([[3,3],[4,4]])2 x( C# I3 B4 ]" h
+ j+ K" ~ z0 A- i% C 那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]])! f) R, ]5 Q! t
1 I# f* I b3 G" g+ w 然后就完成了。, T! d1 f: z; I5 z
7 K; A! f3 M; M! ~8 B }
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。, A) D* Q) k& s
* m2 A/ {& ^& N1 Z1 j& C 然后我们的新的w=w+a*array(x0,x1...xn)*error' Z+ @) z5 ?9 L# ?$ A
. j2 D+ N* ~5 i, o6 J5 v0 A 一般设置循环多少次然后停止或者当error小于多少值得时候算法停止, M& ~, z) k, ^3 G) `5 i/ Z
' o$ X# s" {3 \* o2 b( q3 x9 C
最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
2 f9 x: k, W1 m8 b2 c+ O$ @ # P6 }% i/ J4 o. e+ J$ z' x" Y
. ^& x! p: N! Y' D9 }" U
2 G2 Y+ u) e# [4 g) L
zan