机器学习-非线性回归(Logistic Regression)及应用
1. 概率
1.1 定义:概率(Probability):对一件事情发生的可能性的衡量。
1.2 范围:0 <= P <= 1
1.3 计算方法:
1.3.1 根据个人置信
1.3.2 根据历史数据
1.3.3 根据模拟数据
1.4 条件概率:

2. Logistic Regression(逻辑回归)
2.1 列子:模拟癌症肿瘤是良性还是恶性

h(x) > 0.5

h(x) > 0.2
2.2 基本模型
测试数据为:
要学习的参数为:

向量表示:

由于y取值在[0,1]之间,所有需要处理二值数据,引入Sigmoid函数来使得曲线平滑化


预测函数:

用概率表示:
正例(y = 1):

反例(y = 0):

2.3 Cost函数
线性回归:

(预测值-实例值)
(类似于线性模型)
在简单线性模型中找到合适的
使得上式最小
Logistic regression:
Cost函数:

上式合并可以得到下面的式子
目标:找到合适的
使得上式最小
2.4 解法:梯度下降法(gradient decent)



为学习率
更新法则:

为学习率
同时对所有的
进行更新,重复更新知道收敛
# -*- coding:utf-8 -*- import numpy as np
import random #产生模拟数据 numPoints实例个数 bias偏好值 variance方差
def genData(numPoints, bias, variance):
x = np.zeros(shape=(numPoints, 2))
y = np.zeros(shape=(numPoints)) #1行 如:1x100
for i in range(0, numPoints):#每一行循环
x[i][0] = 0 #每行第一列等于1
x[i][1] = i #每行第二列等于i
y[i] = (i + bias) + random.uniform(0, 1) + variance
return x,y #梯度下降
def gradientDescent(x, y, theta, alpha, m, numIterations): #alpha学习率 m实例个数 numIterations更新次数
xTran = np.transpose(x)#转置
for i in range(numIterations):
hypothesis = np.dot(x, theta)#估计值
loss = hypothesis - y#估计值-实际值
cost = np.sum(loss**2)/(2*m)#这里的定义最简单的cost函数和实际定义有出入
gradient = np.dot(xTran,loss)/m#更新量
theta = theta - alpha*gradient
print("Iteration %d | cost: %f" %(i, cost))
return theta #测试
x, y = genData(100, 25, 10)
# print("x:")
# print(x)
# print("y:")
# print(y)
#
m, n = np.shape(x)
n_y = np.shape(y)
#
# print("x_shape:" ,str(m)," ",str(n))
# print("y_shape:" , str(n_y)) numIterations = 100000
alpha = 0.0005
theta = np.ones(n)
theta = gradientDescent(x, y, theta, alpha, m, numIterations)
print(theta)
机器学习-非线性回归(Logistic Regression)及应用的更多相关文章
- 【机器学习】Logistic Regression 的前世今生(理论篇)
Logistic Regression 的前世今生(理论篇) 本博客仅为作者记录笔记之用,不免有非常多细节不正确之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请 ...
- Python机器学习笔记 Logistic Regression
Logistic回归公式推导和代码实现 1,引言 logistic回归是机器学习中最常用最经典的分类方法之一,有人称之为逻辑回归或者逻辑斯蒂回归.虽然他称为回归模型,但是却处理的是分类问题,这主要是因 ...
- 【模式识别与机器学习】——logistic regression
虽然叫做“回归”,但是这个算法是用来解决分类问题的.回归与分类的区别在于:回归所预测的目标量的取值是连续的(例如房屋的价格):而分类所预测的目标变量的取值是离散的(例如判断邮件是否为垃圾邮件).当然, ...
- 在opencv3中实现机器学习之:利用逻辑斯谛回归(logistic regression)分类
logistic regression,注意这个单词logistic ,并不是逻辑(logic)的意思,音译过来应该是逻辑斯谛回归,或者直接叫logistic回归,并不是什么逻辑回归.大部分人都叫成逻 ...
- Stanford机器学习---第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization
原文:http://blog.csdn.net/abcjennifer/article/details/7716281 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- 机器学习总结之逻辑回归Logistic Regression
机器学习总结之逻辑回归Logistic Regression 逻辑回归logistic regression,虽然名字是回归,但是实际上它是处理分类问题的算法.简单的说回归问题和分类问题如下: 回归问 ...
- 机器学习入门11 - 逻辑回归 (Logistic Regression)
原文链接:https://developers.google.com/machine-learning/crash-course/logistic-regression/ 逻辑回归会生成一个介于 0 ...
- 李宏毅机器学习笔记3:Classification、Logistic Regression
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...
- 【机器学习】逻辑回归(Logistic Regression)
注:最近开始学习<人工智能>选修课,老师提纲挈领的介绍了一番,听完课只了解了个大概,剩下的细节只能自己继续摸索. 从本质上讲:机器学习就是一个模型对外界的刺激(训练样本)做出反应,趋利避害 ...
随机推荐
- linux iconv文件编码转换
linux系统里提供的文件转化编码的命令iconv,例如: iconv -t utf-8 -f gb2312 -c test.xml > text_UTF8.xml 1 -f 源编码-t 目标编 ...
- .tcc文件
今天看源码时碰到一个MemoryPool.h文件和MemoryPool.tcc文件,毫不犹豫在vs工程下把.tcc加到了源文件文件夹下, 把.h文件放到了头文件文件夹下.结果闹了笑话: 以下是解释, ...
- C#开启一个进程
Process myProc = null; myProc = Process.Start(@"E:\QQ轻聊\Tencent\QQLite\Bin\QQScLauncher.exe&quo ...
- @RequestHeader和@CookieValue的使用
/** * 了解: * * @CookieValue: 映射一个 Cookie 值. 属性同 @RequestParam */ @RequestMapping("/testCookieVal ...
- StringUtils.isBlank()检验String 类型的变量是否为空
在校验一个String类型的变量是否为空时,通常存在3中情况 是否为 null 是否为 "" 是否为空字符串(引号中间有空格) 如: " ". Str ...
- php array function
说明:不特殊说明都支持php4,5,7 参考:https://www.php.net/manual/zh/ref.array.php is_array ( mixed $var ) : bool ...
- Computer Network Homework2’s hard question
Computer Network Homework2’s hard question 2. What is the signal which is used to modulate the origi ...
- vue中关于checkbox数据绑定v-model指令的个人理解
vue.js为开发者提供了很多便利的指令,其中v-model用于表单的数据绑定很常见, 下面是最常见的例子: <div id='myApp'> <input type=&qu ...
- PC端网页嵌入百度地图
1 打开百度地图生成器: http://api.map.baidu.com/lbsapi/creatmap/ 2 设置好了之后,点击获取代码,将代码粘贴到文件中保存为html文件 参考网址:https ...
- arguments对象的callee属性详解
在函数内部,有两个特殊的对象:arguments和this. argument对象有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数.请看下面这个非常经典的阶乘函 ...