当前位置:首页>python>Python手写逻辑回归二分类任务(1)

Python手写逻辑回归二分类任务(1)

  • 2026-10-30 23:16:49
Python手写逻辑回归二分类任务(1)
逻辑回归(Logical Regression)是最常用的一种分类器,从线性回归拓展而来,在分类任务,特别是二分类任务上经常用到,作为一个初学者,不想要简单的做一个调包侠,那就实际动手从公式理解,到算法代码实现都手搓一遍。(本文用到的是吴恩达机器学习课程的资料,相信很多跟我一样的初学者都是从这里开始)
首先,让我来说一说对于机器学习的理解,所谓机器学习,就是借助机器的强大算力,把无法通过人眼一下子看出来的规律(回归)和分类形成一个公式拟合,一种数学表示。
那么问题来了,我需要这些规律干嘛?
举几个简单的例子:
1.气温,假设你现在要在10号出门做点事,你需要知道10号的天气情况,而你刚好有记录的习惯,你能通过历史数据推测出10号的数据吗?
day
temperature
2020-01-01
15.8
2020-01-02
15.5
2020-01-03
15.3
2020-01-04
15.3
2020-01-05
15.4
2020-01-06
15.8
2020-01-07
15.7
2.房价,假设你是一个刚需,长时间关注房价,你该如何确定啥时候下手才能不亏甚至小赚,这时候你又很机智的记录下了过去的房价以及和房价相关的一些数据(地域、出售套数、面积等)?
month
region
sold
area
price
2020-01
2
30
188
3289.98
2020-02
2
40
53
4273.40
2020-03
2
9
75
4508.06
2020-04
0
87
122
4392.91
2020-05
1
83
123
3681.77
2020-06
3
27
163
3724.10
2020-07
0
85
122
4357.92
2020-08
2
98
78
4798.39
2020-09
0
67
179
4699.43
2020-10
1
3
112
3274.83
3.股票价格,这时候你又化身股神,想要在交易市场中名声大噪,这可不是简单的东西,不管是卖点还是买点都无不体现了你的专业,你聪明的脑袋疯狂运转,却发现干不过机器。
time
trading_volume
price
1/1/2024 9:36
300.1234363
15.84617147
1/2/2024 9:37
601.5364813
14.28288112
1/3/2024 9:38
903.3073281
15.60677219
1/4/2024 9:39
1204.639014
15.06886637
1/5/2024 9:40
1505.730983
15.88801059
1/6/2024 9:41
1805.754651
15.61288848
1/7/2024 9:42
2106.511179
15.15117651
1/8/2024 9:43
2408.85504
14.91736392
1/9/2024 9:44
2711.521511
15.36890019
1/10/2024 9:45
3012.688428
15.95477252
1/11/2024 9:46
3313.530406
15.5942291
1/12/2024 9:47
3614.110362
15.99425996
1/13/2024 9:48
3917.09128
15.83075496
1/14/2024 9:49
4217.560753
15.4509775
以上这些例子表明,我们周围存在的这些数据,似乎有某种内在的规律,但是我们无法通过肉眼观察,和简单的计算得到答案。所以机器学习的目标就是于此,试着用数学上的某种函数(或者很多函数组合到一起)来对现实数据进行拟合,尽管他不是百分百拟合,但是可以在很大程度上告诉我们趋势是怎样的。
废话不多说,开搞!
首先来简单理解一下线性回归,我们从一个简单的初中函数公式开始:
                                        y=ax+b
x
a=1
a=2
b=1
y1
y2
1
1
2
1
2
3
2
1
2
1
3
5
3
1
2
1
4
7
4
1
2
1
5
9
5
1
2
1
6
11
上表展示的就是如何对这个函数进行基本计算(y1,y2分别表示a=1,2时候算出来的数值),其实就是说,当我们知道某种算法(数学公式)形如上面的公式,或者应该说,我们用瞪眼法(注意力惊人的你),看出了X和Y的关系,因此当有新的X的时候,我们可以直接计算出Y的值,简单来说,X是我们能知道的,Y是我们想知道的;在温度的例子中,假设此刻X就是日期(2020-01-10),因此我们可以直接算出Y(10号的气温)=11度。
简答算一下,比如第一行:
       a=1时:y1=a1*x+b=>1*1+1=2,
       a=2时:y2=a2*x+b=2*1+1=3
       ok,我们来推演一下表里没有的数据:
       a=1时:我们得到一个新的x,假设是230,如何计算得到预期的y?
        非常简单:y=a1*x+1=>1*230+1=231
注意,这里的a=1,a=2只是为了给大家展示,不同的a的值会引起结果怎么样的变化,这里的y=ax+b也只是大自然多种拟合中的一种,我们不要从本末倒置从公式去看世界,而是应该想想能从世界中看出什么规律,能用几个简单的字母表示某一些东西会随着另外一些东西的变化而变化,因此,当我们在现实生活中想要知道我们不能直接知道的东西时候(比如y),看能不能尝试从它的另一侧去入手收集信息(比如x),
以此类推,就是这么简单很清爽。
(一更到此,此部分有疑问的请在评论区告诉或者直接私信我)

最新文章

随机文章