- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 566822 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 175269
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
关于Logistics回归用于分类的解释
% p- k6 h6 V" s! ilogistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?& U5 }# {( [; v \
& j$ A- U" U3 b0 ?说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
2 v( ?5 f! J" G: V
6 M* A5 W9 y3 s+ k/ A; u5 Z这条直线是怎么得出的呢?
. X, ~4 F* B" X& c7 \
; E& S/ c& g, [1 H首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
' n4 ]6 n) W$ t8 Y0 e1 o7 [2 l$ p. [% Z; c1 F
我们可以得出y=w0*x0+w1*x1...wn*xn t# L: F1 U* _, g+ v
9 w7 ?* Y4 N9 q5 f2 u/ {/ R然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
7 u! D0 f6 @ G. A+ s8 n# j H7 y) [ c0 m
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。9 I X1 f6 a0 t( O% v
; h4 `' |/ t( \' P
& v. n, t: ]4 E# E$ q0 l% {, H9 b ^) i6 {
/ r8 n' r' C3 F- e这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
- D: Z9 J0 m! M2 I
1 y$ Q- F+ @3 J; O假设dataMatIn=array([[3,3],[4,4]])
; h9 c9 t; P0 X! B, C* b1 D& X3 s' f# v1 m6 y5 c2 S+ e
那么dataMatIn的梯度就是dataMatIn.transpose() => array([[3,4],[3,4]]) S# p$ b( W+ j! M1 ^
7 q. f2 j: H( y& q然后就完成了。
b2 U& M+ N& S. @/ ~' D- X; f
% x" a$ [* k) V! [# O继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。# {; e2 ~2 B& b: V3 g$ G
. R: F+ {5 n9 S% q- r3 ^- U c
然后我们的新的w=w+a*array(x0,x1...xn)*error: h5 f8 j6 |1 E5 s+ @8 l7 }
9 \5 e. v+ R5 Z. `1 `9 n. J9 ~一般设置循环多少次然后停止或者当error小于多少值得时候算法停止
. J0 c0 M: g/ V; g. k: ~2 d
& t' n, u5 J( C8 P" h+ U5 w9 O最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于10 }+ `( ]$ T2 Y& g: J" c
0 x- ?; r5 _1 ]6 W0 L7 b
$ X$ A6 F! f/ V# V" d+ o
5 ?) f# G( n' J$ G+ Y- K* n5 ^ |
zan
|