学习彭亮《深度学习基础介绍:机器学习》课程


概率

定义

概率(Probability): 对一件事情发生的可能性的衡量

范围

0 <= P <= 1

计算方法

  • 根据个人置信
  • 根据历史数据
  • 根据模拟数据

条件概率


即A在B发生的情况下的概率=AB同时发生的概率/B发生的概率


Logistic Regression (逻辑回归)

例子


以h(x) > 0.5来区分


以h(x) > 0.2来区分


基本模型

测试数据为X(x0,x1,x2···xn) /* x0...Xn都是自变量 */
要学习的参数为: Θ(θ0,θ1,θ2,···θn)

向量表示:
(*)

处理二值数据,引入Sigmoid函数时曲线平滑化
(**)

用这个函数来模拟0-1之间的变化

由(* * )(*)=>预测函数为

用概率表示
(y==1)
(X为自变量,Θ为待求参数,所以此表达式的意思为:给定X,Θ的情况下y=1的概率为多少)
(y==0)
(所以此表达式的意思为:给定X,Θ的情况下y=1的概率为多少)


Cost函数

线性回归:

直线的标准为:预测点和真实点距离的平方最小,即

  • m:m个实例
  • y(i):第i个实例的真实值为多少
  • x(i):每个实例自变量是多少
  • h(x(i)):每个实例自变量套用h(z)这个方程的函数值,即预测值(y_hat)

在线性方程中Cost函数:


此线性方程的目标就是要找到合适的 θ0,θ1使上式最小(即最小的Cost)

在回归方程中Cost函数:

(要找最小,所以加了-号;取对数方便加减、求导;把y=1时和y=0时的方程合并为J(Θ) )

所以现在的目标就是通过训练集训练并学习出一组Θ的值,使目标函数J(Θ)最小化


解法:梯度下降(Gradient Decent)

对于多元非线性函数的高维平面,从平面上的一个点出发,目标是找到一组Θ的值,使目标函数J(Θ)最小化,也就是找到上图中的最低点。所以就是梯度下降法:从某个点出发,求偏导,走下降的最快的,求导后找到斜率最大的方向,再走一步,重复…直到找到最低点

J(Θ)对Θj求偏导
alpha:学习率,就是每一步的步长
即每一步传进来后通过Θj-alpha*(J(Θ)对Θj求偏导)得到下一步的Θj

更新法则

  • alpha:学习率
  • i:不同的实例
  • 同时对所有Θ进行更新,重复更新直至收敛(小于设定的阈值)

#coding=utf-8# @Author: yangenneng
# @Time: 2018-01-18 15:30
# @Abstract:非线性回归-逻辑回归算法import numpy as np
import random'''
# function:产生一些数据,用来做拟合
# numPoints:实例个数
# bias:随机生成y时的偏好
# variance:一组数据的方差
'''
def genData(numPoints,bias,variance):# 生成numPoints行2列的零矩阵  shape形状x = np.zeros(shape=(numPoints, 2))y = np.zeros(shape=(numPoints))# 循环numPoints次,及i=0 到 numPoints-1for i in range(0,numPoints):x[i][0] = 1x[i][1] = i# random.uniform(0,1)  从0-1之间随机产生一些数y[i] = (i+bias)+random.uniform(0, 1) * variancereturn x, y'''
# 梯度下降算法
# x:自变量矩阵,每行表示一个实例
# y:实例的真实值
# theta:待求的参数
# alpha:学习率
# m:总共m个实例
# numIterations:重复更新的次数(重复更新直至收敛(小于设定的阈值))
'''
def gradientDescent(x,y,theta,alpha,m,numIterations):# 矩阵转置xTran = np.transpose(x)# 循环次数for i in range(0,numIterations):# 公式中的Zhypothesis = np.dot(x,theta)# loss:预测值-实际值loss = hypothesis-y# cost就是公式中J(Θ),这里定义的是一个简单的函数cost = np.sum(loss ** 2) / (2 * m)# 每次更新的更新量,即更新法则gradient=np.dot(xTran,loss)/m# Θtheta = theta-alpha * gradientprint ("Iteration %d | cost :%f" % (i, cost))return theta# 参数数据
x,y = genData(100, 25, 10)
print "x:", x
print "y:", y# 查看产生数据的行列
m,n = np.shape(x)
n_y = np.shape(y)
print("m:"+str(m)+" n:"+str(n)+" n_y:"+str(n_y))# 求Θ
numIterations = 100000
alpha = 0.0005
theta = np.ones(n)
theta= gradientDescent(x, y, theta, alpha, m, numIterations)
print(theta)


[ 29.45891223 1.014378 ]表示Θ1、Θ2(因为X是二维的)

机器学习-非线性回归( Unlinear Regression) -逻辑回归(Logistic Regression)算法相关推荐

  1. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”

    Coursera公开课笔记: 斯坦福大学机器学习第六课"逻辑回归(Logistic Regression)" 斯坦福大学机器学习第六课"逻辑回归"学习笔记,本次 ...

  2. 斯坦福大学机器学习第四课“逻辑回归(Logistic Regression)”

    斯坦福大学机器学习第四课"逻辑回归(Logistic Regression)" 本次课程主要包括7部分: 1) Classification(分类) 2) Hypothesis R ...

  3. 机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

    之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradien ...

  4. 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”

    http://52opencourse.com/125/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D%A6 ...

  5. 机器学习第三回——逻辑回归 (Logistic Regression)

    分类问题 属于监督学习的一种,要预测的变量

  6. 札记_ML——《统计学习方法》逻辑回归logistic regression)

    统计学习方法:五. 逻辑回归logistic regression 逻辑回归logistic regression Logistic的起源 1).概念logistic回归又称logistic回归分析, ...

  7. 吴恩达机器学习 8.6 逻辑回归(Logistic Regression)

    6.1 分类问题 参考文档: 6 - 1 - Classification (8 min).mkv 在这个以及接下来的几个视频中,开始介绍分类问题. 在分类问题中,你要预测的变量 $y$ 是离散的值, ...

  8. 逻辑回归(logistic regression)的本质——极大似然估计

    文章目录 1 前言 2 什么是逻辑回归 3 逻辑回归的代价函数 4 利用梯度下降法求参数 5 结束语 6 参考文献 1 前言 逻辑回归是分类当中极为常用的手段,因此,掌握其内在原理是非常必要的.我会争 ...

  9. 逻辑回归(Logistic Regression

    6.1 分类问题 参考文档: 6 - 1 - Classification (8 min).mkv 在这个以及接下来的几个视频中,开始介绍分类问题. 在分类问题中,你要预测的变量 y y y 是离散的 ...

  10. 逻辑回归(Logistic Regression)简介及C++实现

    逻辑回归(Logistic Regression):该模型用于分类而非回归,可以使用logistic sigmoid函数( 可参考:http://blog.csdn.net/fengbingchun/ ...

最新文章

  1. Eclipse 之 EasyExplore 插件
  2. 超强1000个jquery极品插件!(连载中。。。。最近更新20090710)
  3. 电脑桌面没有计算机图标鼠标也点不起来,为什么我的电脑桌面上的图标有时用鼠标怎么点也没反应呀?...
  4. 页面排序(上下元素对换)
  5. 算法训练营04-map,set,dequeue,stack
  6. cab文件介绍及制作方法
  7. 牛客网--2019校招--瞌睡
  8. vimnbsp;自动识别UTF8和GB2312
  9. 微波遥感几个重要公式
  10. 如何判断矩阵的谱半径 C语言,矩阵谱半径
  11. 安卓智能地图开发与实施:三维地图 - ArcGIS Runtime SDK for Android
  12. LAMMPS甲烷全原子(CH4)模型的分子模板问题
  13. 【武忠祥高等数学基础课笔记】定积分
  14. 中国世界500强数量首超美国,但别高兴得太早
  15. pytorch Module中的forward使用for循环与不使用for循环的区别
  16. git 拉取远端所有分支
  17. 最大似然估计(机器学习)
  18. EasyNVS摄像机公网全终端无插件网页摄像机直播管理服务运行出现“请求服务不存在或已停止”...
  19. 深度学习之yolov5目标识别全过程记录(纯小白)
  20. python动态数学计算验证码_python小实验:做验证码

热门文章

  1. SDL Trados 2021 安装和体验 (体验)
  2. WinForm对话框详解:信息框、文件对话框、功能对话框
  3. 有创业及野心的一定要看
  4. iOS审核被拒那些坑(五)
  5. PowerDesigner 教程
  6. 怎么掌握Java开发技能 常用微服务框架有哪些
  7. 【智慧气象】气象监测系统集成设备
  8. linux--journalctl 日志查看方法
  9. 推荐几个涨姿势公众号
  10. 关于template的作用