🦖
Wii
  • 原码补码反码
  • Archive
    • Job
      • Learn
      • 算法
      • Company
        • HundunDaxue
      • Company
      • 基础
        • 原码补码反码
      • 项目经验
      • require
    • Hobbies
      • Physics
        • 上帝粒子
        • 概述
        • 时间
      • Movie
        • MovieList
      • Psychology
        • Psychology
        • Chenli
          • ChenliLivingRoom
      • Philosophy
        • Philosophy
        • Conceptions
        • 导言
      • Travel
        • City
          • 昆明
          • 沈阳
        • articles-check-list
      • Sports
        • Swimming
        • Skiing
      • Earth
        • Ocean
          • Biology
      • Read
        • BookList
        • 道德经
        • BookToRead
      • Music
        • sort
      • PickUp
        • SoldiersSortie
    • Care
      • Illness
        • cold
        • 腹泻
        • acne
        • EmotionalControl
        • 咽炎
        • Anemia
      • Foods
        • 破壁机
          • 食谱
      • I
      • WishList
      • WithL
        • MF
          • LY
    • Wfw
      • QA
    • Mac
      • Brew
        • 软件安装目录
      • Usage
        • RunScriptAsRootOnBoot
        • Mac-Config
      • 制作启动U盘
      • Software
        • IntelliJIDEALicenseServer
          • run-license-server
    • PlantUML
      • plantuml
    • Windows
      • Windows常用命令
      • PowerShell
        • powershell 命令
      • Cmder
      • MTP服务驱动无法安装
    • English
      • 英语阅读2016-07-29
      • 英语阅读2016-08-11
    • Tools
      • Plantuml
        • Setup
      • Eclipse
        • Eclipse
        • Eclipse常见问题
      • CommonHotkey
      • Jetbrain
        • JetbrainIDEs
      • VSCode
      • SublimeText
        • 格式化代码
    • I
      • WHATIAM
    • Device
      • Netgear
        • Astrill
      • RPi
        • Hardware
    • AwesomeSoftware
    • RESTful
    • Course
      • 自然辩证法
        • 我国在生态文明建设中存在的困境及解决对策
        • 工程师应该具有的基本道德素养
        • 科学文化与人文文化的关系
      • 英语写作
        • Description
      • 分布式系统
        • 分布式系统概论
      • 英语口语
        • 辩论赛
    • CloudLib
      • 推荐0.1
    • Project
      • README
        • emq
          • Emq架构
        • 启动
        • Hikvision
          • TimeSetting
    • Efficient
    • Neu
      • IpCamera
        • live
        • ffmpeg
    • Matlab
      • Matlab 2016b 破解
    • SchoolWork
      • 学术道德与学术规范
    • git-push
  • Coding
    • Design Pattern
      • 设计模式笔记_四_工厂模式
      • 设计模式笔记_六_命令模式
      • 设计模式笔记_三_装饰者模式
      • 设计模式入门
      • 设计模式笔记_八_模板方法模式
      • 设计模式笔记_一_策略模式
      • 设计模式笔记_五_单件模式
      • 设计模式笔记_七_适配器模式与外观模式
      • 设计模式笔记_二_观察者模式
      • 设计模式笔记_十_状态模式
      • 设计模式笔记_九_迭代器与组合模式
    • C++
      • Notes
        • Practice
          • Logger
        • Thread
          • PosixThreadPrograming
          • ThreadNote
        • Features
          • FuturePromise
          • Lambda
        • STL
          • STLPractice
          • 迭代器
          • UnorderedMapSet
          • Containor
          • STL
          • Vector
        • CMake
          • Startup
          • CMakeExample
          • CMake
          • CMakeUsage
          • CMakeKnowledge
        • Mutex
        • Gdb
          • Gdb
        • LanguageNotes
          • Pointer
          • String
          • Functions
          • 友元
          • IO
          • OOP
          • Exceptions
          • Basic
          • 初始化
          • Random
          • 模板函数
        • Glog
          • glog
        • Thrift
          • Thrift
        • Valgrind
          • valgrind
        • 动态库 & 静态库
        • BookNotes
          • AboutC++
        • LRvalues
      • map
      • protobuf
      • Build
      • Seastar
        • Notes
          • std::move
          • Introduce
          • Install
            • BuildAndInstall
          • Steps
          • cmd
      • Tricks
      • Map
      • CommonOperation
      • FreqAlgorithm
    • Tools
      • Git
        • GitExamples
        • GitUsage
        • GitKnowledge
        • GitIgnoreExample
        • DeleteBigFileFromHistory
      • Vim
        • VimTips
        • 安装
        • Vim-Usage
        • Plugins
        • Vim-Config
      • SVN
        • svn服务器搭建
        • svn
    • Scala
      • Notes
        • Scala-模式匹配
        • Scala: 隐式
        • Scala-符号语法
        • Scala-函数
        • Scala面向对象编程
        • Scala 函数式编程
        • Scala:zipWithIndex
        • Future
        • Scala-语法
        • Scala-基础
      • DateTime
      • 规范
    • Python
      • Notes
        • BookNotes
          • 生成器
          • 垃圾回收机制
          • 数据结构
          • 数据类型
          • RegularExpression
          • 迭代器
          • NetworkProgramming
          • 函数式编程
          • 上下文管理器
          • PythonDataModel
          • 运算符
          • 魔术方法
          • 面向对象
          • 装饰器
          • 模块
          • MultithreadProgramming
          • 异常
          • 函数
        • Modules
          • stack
          • Datetime
          • shutil:文件操作
          • logging
          • urllib
          • Re
          • 容器数据类型
          • TypeError
          • str
          • queue
          • urllib-and-requests
          • Exception
          • path
          • os
        • Others
          • PythonSerialization
          • Python函数的docstring
          • PIL
          • type-cast
          • operations
          • Python-类
          • 组及命名组匹配
          • Package
          • jieba分词
          • logging模块
          • Python
          • print
        • Examples
          • 文件读取写入
          • 命名
          • 递归更改文件为windows合法名称
          • 定制命令行运行方式
          • Python处理Excel文件(xlsx文件格式)
          • 读取ini配置文件
          • tor代理
          • 添加父目录到Path
        • CommonTips
        • CodingStandards
          • python注释
          • PEP-8
      • Django
        • DjangoDocs
          • making queries
          • 设置media路径
          • models
          • manage.py使用
          • template
          • view
          • forms
          • setting.py 文件配置说明
          • nginx-deploy
          • 使用pymysql
          • 自定义tags和filters
          • admin-interface
        • DjangoRestFramework
          • Customer Permissions
          • Serializers
          • FileField绝对路径问题
          • DjangoRestFrameworkNotes
          • ViewSet
        • DjangoNotes
          • Model对象转化为Dict
          • QuerySet
      • Scrapy
        • Scrapy
        • Spider
        • Scrapy安装出错
        • Selector
        • Scrapy模拟登陆
      • Job
        • 字典
      • Pandas
        • pandas
        • PandasExamples
      • VirtualEnv
        • virtualenv
      • Numpy
        • NumpyUsage
        • numpy
      • Matplotlib
        • MatplotlibNotes
        • MatplotlibUsage
      • Database
        • 获取表字段
      • Pip
        • 更改源
      • Scipy
        • scipy
    • Web
      • 插件
        • bootstrap-table
          • bootstrap-table
        • bootstrap
          • 模态框
        • requirejs
          • requirejs
        • toastr
          • toastor
      • Koa
        • Notes
          • KoaNotes
      • SCSS
        • 常用标签
        • Watch
      • Vue
        • Notes
          • 路由
          • 参考
          • 组件
          • Plugins
          • Vuex
          • StartUp
      • 样式
      • CSS
        • CSS
      • 排版
      • Notes
        • 跨域访问
      • Hexo
        • HexoUsage
      • Nodejs
        • Koa
          • jest
          • ParamValidate
        • 仓库镜像
      • Express
        • Express
        • Jade
          • Jade
      • Canvas
        • Canvas
    • Basic
      • Data Structure
        • Heap
          • Heap
        • Tree
          • Tree
        • Benchmark
          • map
      • Boolean
      • MultithreadProgramming
      • Software Engineering
        • UML
          • UML
      • OOP
      • 介绍
    • Antlr
      • Example
      • Grammar
      • Antlr
    • Java
      • Library
        • MyBatis
          • generator
            • mybatis配置详解
          • mybatis-获取自增ID
          • mybatis
          • problems
        • log4j
          • Usage
      • Maven
        • MavenUsage
        • Maven
        • MavenProject
        • 项目RUL路径问题
        • MavenPom
        • Settings
        • PomCommon
        • PomExample
      • Notes
        • Features
          • Reflect
          • Java函数式编程
          • toMap
          • Closeable & AutoCloseable & Flushable
          • Annotations
        • Common
        • ThinkingInJava
          • 控制执行流程
          • 接口
          • 复用类
          • 内部类
          • 操作符
          • 访问权限控制
          • 一切都是对象
          • 多态
          • 初始化与清理
          • 对象导论
        • SwordToOffer
        • Network
        • Thread
          • ThreadPool
        • Basic Library
        • Collections
          • List Interface
        • CommandLine
        • Project Common
        • JavaLang
      • JVM
        • Monitor
          • Jmap
          • mat
          • Jstat
          • Monitor
        • Notes
          • JVM
        • GC
          • GC
          • Shenandoah
            • Shenandoah
        • JVM
    • Algorithm
      • Code
        • LeetCode
          • Python
            • 0000-0050
              • 0005
              • 0030
        • SwordToOffer
          • SwordToOffer
      • AlgorithmSummary
      • Classics
        • string
          • KMP
        • Other
          • FullPermutation
        • 链表
        • Sort
          • Sort
      • Other
        • README
      • Notes
        • Math
          • 两点计算直线方程
    • Go
      • Notes
        • Go Project Layout
        • Install
        • Startup
      • Basic
        • Startup
        • Types
    • JavaScript
      • MasonryLayouts
      • jquery
      • Notes
        • Promise
      • js
    • Android
      • SDK
        • 打开SDK Manager
    • C#
      • WebBrowser
      • c#图片
      • 跨线程访问控件
    • Knowledge
      • 函数式编程
      • 设计框架
    • Rules
      • Rules
    • React
      • ReactNative
        • React Native Navigation
        • 打包Apk
        • ReactNative
      • React
        • README
    • RegExp
      • 正则表达式
    • WeChatApp
      • 登陆
    • Node
      • Notes
        • StartUp
  • Computer Science
    • ICS Security
      • 工控网络
      • 工业控制系统
      • HoneyPot
        • 蜜罐软件
          • Honeyd
      • 工业以太网
      • CNVD
        • 环境及依赖
      • 现有蜜罐系统及工具
      • 工控系统安全措施
      • 蜜网
      • 蜜罐
      • 工控安全相关概念
    • Data Analysis
      • Data Mining
        • Notes
          • Data_Preprocessing
          • 数据预处理
          • 认识数据
          • Mining_Modeling
          • 数据探索
          • Python_Data_Mining_Functions
          • Python数据分析平台搭建
          • Reference_Books
          • 数据分析与挖掘基础
        • Jupyter
          • show
            • mean
      • Hadoop
        • Hadoop权威指南:数据完整性
        • Hadoop权威指南: I/O操作序 - 列化
        • Hadoop权威指南-从Hadoop URL读取数据
        • Hadoop权威指南:FSDataInputStream对象
        • HDFS常用命令
        • Hadoop权威指南:HDFS-数据流
        • Hadoop权威指南:通过distcp并行复制
        • Hadoop权威指南:压缩
        • Hadoop权威指南:HDFS-Hadoop存档
        • 解决使用Idea/Eclipse编写Hadoop程序包依赖问题
        • HDFS
        • Hadoop-命令
        • 简单javaHadoop应用程序从打包到提交运行
        • Hadoop权威指南:HDFS-写入数据
        • Hadoop权威指南:HDFS-目录,查询文件系统,删除文件
        • HadoopInputFormat-OutputFormart
        • Hadoop-HDFS命令行接口
        • Hadoop权威指南-MapReduce应用开发
        • Linux下使用javac编译Hadoop程序
        • Hadoop权威指南:通过FileSystem API读取数据
        • Hadoop专有数据类型
      • Spark
        • Spark计算模型
        • Spark-入门二
        • 安装Hadoop及Spark(Ubuntu 16.04)
        • Spark:核心概念简介
        • Spark:控制日志输入
        • Spark - RDD编程
        • Spark工作机制
        • Spark-一个独立应用
        • Spark
        • Spark:使用Spark Shell的两个示例
    • Linux
      • Notes
        • BuildInCommand
          • ls
          • ip
          • ftp
          • 目录栈操作
          • scp
          • expect
            • expect示例
            • expect手册
            • expect笔记
          • ps
          • vsftpd
          • wget
          • 压缩程序
            • zip_unzip
            • tar
            • p7zip
          • 部署web服务
          • avidemux
          • cat
          • Awk
          • find
          • pssh使用
          • grep
          • sed
          • 路径
          • 通用命令
          • 安装JDK
          • 进程管理
          • network
          • rsync
          • cron
          • 示例
          • 用户管理
          • supervisor
        • Common
        • TestFileProcess
          • 替换文件内容
        • Commonds
        • Permissions
      • Ubuntu
        • Ubuntu 服务器配置部署
        • Ubuntu笔记
        • Ubuntu网络配置
        • Ubuntu 16.04 几个国内源
      • Script
        • ShellProgramming
        • ShellExamples
        • ShellCommands
      • CentOS
        • Centos笔记
        • 源
        • CentOS-Network-Config
        • CentOS-Security
      • Squid
        • BuildByDocker
        • Squid
      • Problem
        • 常见错误
      • Linux
        • Linux-c-cpp
        • Linux
        • Linux-NetworkProgramming
      • Codes
        • cron-test-01
      • Software
        • Shortcut key
        • Anaconda
      • Make
        • tricks
      • Deepin
        • 安装docker
      • SRE
        • CommonCommand
    • Cloud Computing
      • OpenStack
        • Fuel离线安装OpenStack
        • 验证网络
        • OpenStackNotes
    • Network
      • TCP/IP
      • 套接字
      • OSI模型
    • Data mining
      • StartUp
    • Machine Learning
      • Notes
        • 决策树学习-周志华
        • 神经网络-周志华
        • 概念学习和一般到特殊序
        • MachineLearningProblems
        • Math
          • 概率论与数理统计
          • 数学概念
          • KKT条件
          • 最优化问题
          • 优化算法
          • 最小二乘
        • 模型评估与选择
        • 引言
        • 过拟合处理
        • StatisticalLearningMethod
          • 统计学习方法概论
          • 感知机
        • 评估假设
        • Code
          • FeatureEngineering
            • Iris
        • 概念
        • SVM
        • FeatureEngineering
        • 神经网络
        • 决策树学习
        • MachineLearningKnowledge
        • 线性模型
        • 术语概念
        • 拉格朗日乘子法
      • route
      • Jupyter
        • JupyterUsage
      • Anaconda
        • AnacondaUsage
      • Coursera
        • Week01
      • ScikitLearn
        • FitTransform
        • Preprocessing
      • Octave
        • Octave
    • Search
      • Lucene
        • Api
        • Concepts
    • Virtualization Tech
      • Docker
        • dockerNetwork
        • Ubuntu
        • DockerUsage
        • Mac OS
    • Database
      • MySQL
        • Mysql Cluster
        • mysql-cluster
        • mysql
      • 部署phpmyadmin
      • SQL
      • SQL
        • SQLStatement
    • Concepts
      • Other
      • Mohout
      • LDA
    • Distributed System
      • Concepts
        • TODO
        • TODO
    • Recommend System
      • DataPipline
        • DataBus
        • 系统
    • OS
      • OS-Code
      • Notes
        • Introduce
        • ProcessManagement
        • Kernel
    • Deep Learning
      • Code
        • README
      • Notes
        • Conceptions
        • 神经网络
        • LeNet5
        • CNN
      • Tensorflow
        • Notes
          • Tensorflow
          • tensorflow开始
        • Anaconda
    • Media
      • FFmpeg
        • LiveStream
          • run
    • Spider
      • Selenium
        • Selenium
    • IoT
      • emq
        • Authentication
    • Big Data
      • Hadoop
        • MR 作业
  • Architecture
    • Storage
      • Mongodb
        • Mongodb
        • Failed to unlink socket file
      • Pegasus
        • Pegasus
        • ShellTools
      • Rocksdb
        • RocksJava
        • RocksDB
        • 本地缓存
      • Redis
        • Install
        • RedisUsage
      • 基本要素
      • HBase
        • HBase
    • MQ
      • Kafka
        • VersionCompare
        • Deploy
        • cppkafka
        • CommandLineTools
        • OffsetManage
        • Attentions
        • Notes
        • QA
    • Framework
      • Java
        • Dubbo
          • Annotation
          • 简介
        • Spring
          • SpringTest
          • 常见错误
          • TransactionRollback
          • FileUpload
          • SpringMVCNote
          • IoC
          • Start
          • Notes
            • Config
          • Spring
          • springmvc
          • Modules
        • Rose
          • Get request body
        • Netty
          • Netty
        • SpringBoot
          • SpringBoot
      • Esper
        • Documents
          • Keyed Segmented Context
          • 01 - Getting Started
          • 02 - Event Representations
          • 03 - Processing Modal
      • Swagger
        • Swagger
    • RPC
      • Thrift
        • Notes
          • Set fields
          • ThriftTyps
        • BuildFromSource
        • ThriftUsage
        • Install
      • ProtocolBuffer
        • 减少内存拷贝
        • UsageExample
        • Arena
        • ProtocolBuffer
    • Distribution
      • CAP
    • Streaming
      • Spark
        • Init
      • MapReduce
      • Spark
    • Nginx
      • Nginx knowledge
      • nginx-configurtion
      • 403
      • nginx解析php文件时502
    • Governance
      • Consul
      • Zookeeper
        • Zookeeper
      • MicroServiceArchitecture
      • 依赖
    • Conceptions
      • CloudNative
    • Kibana
      • Query
    • Performance Optimizaition
      • Notes
        • Conceptions
        • CPUAffinity
  • Math
    • Probability Theory
      • 一些概率分布
    • Statistics
      • 统计量与估计量
    • Other
      • 排列组合
  • Tools
    • Markdown
      • syntax
    • Jetbrains
      • Jetbrains
    • Zsh
      • Install
  • TODO
由 GitBook 提供支持
在本页
  • 基本形式
  • 多重线性回归
  • 推导
  • 逻辑回归(对数几率回归)
  • 简介
  • 对数几率函数
  • 优缺点
  • 推导
  • 逻辑回归中的代价函数
  • 用途
  • 线性判别分析
  • 多分类学习
  • 参考
  • 类别不平衡问题
  • 问题
  • 逻辑回归于多重线性回归的区别

这有帮助吗?

  1. Computer Science
  2. Machine Learning
  3. Notes

线性模型

上一页MachineLearningKnowledge下一页术语概念

最后更新于4年前

这有帮助吗?

title: 线性模型 tags:

  • 机器学习

  • 线性模型

    categories:

  • 机器学习

基本形式

线性模型(linear model)试图通过属性的线性组合来进行预测的函数,即:

f(x)=ω1x1+ω2x2+ω3x3+...+ωdxd+bf(x) = \omega_1 x_1 + \omega_2x_2 + \omega_3x_3 + ... + \omega_dx_d + bf(x)=ω1​x1​+ω2​x2​+ω3​x3​+...+ωd​xd​+b

线性模型,形式简单,易于建模。

多重线性回归

线性回归(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。

多重线性回归

多重线性回归(multiple linear regression) 是简单直线回归的推广,研究一个因变量与多个自变量之间的数量依存关系。多重线性回归用描述一个因变量与多个的依存关系,简称多重回归。

  • 均方误差

    • 是回归任务中最常用的性能度量

    • 几何意义:对应了常用的欧几里得距离或简称欧氏距离

  • 最小二乘法

    • 基于均方误差最小化来进行模型求解的方法称为最小二乘法

    • 线性回归中,最小二乘法就是试图找到一条曲线,使所有样本到直线上的欧氏距离之和最小

  • 对数线性回归

    • ln⁡y=ωTx+b\ln y = \omega ^T x + blny=ωTx+b

      或

      y=ewTx+by = e ^ {w^Tx+b}y=ewTx+b
    • 对数线性回归 实际上是在试图让 eωTx+be^{\omega ^T x + b}eωTx+b 逼近 yyy

    • 形式上仍是线性回归,但实质上是在求取输入空间到输出空间的非线性函数映射

    • 这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用

  • 广义线性模型

    • 对数线性回归是广义模型的特例

    • 考虑单调可微函数 g(⋅)g(\cdot)g(⋅),令

      y=g−1(ωTx+b)y = g^{-1} (\omega ^T x + b)y=g−1(ωTx+b)
    • 函数 g(⋅)g(\cdot)g(⋅) 称为联系函数

推导

原理

应用

根据已知数据 xxx 和拟合函数 hθ(x)h_\theta(x)hθ​(x) 训练其中未知参数 θ\thetaθ ,使得拟合损失 J(θ)J(\theta)J(θ) 达到最小。然后用所得的拟合函数进行预测。

  • 假设

    hθ(x)=θTxh_\theta(x) = \theta^Txhθ​(x)=θTx
  • 参数

    θ=[θ0θ1θ2⋮θn]θ∈Rn+1\theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \\ \vdots \\ \theta_n \\ \end{bmatrix} \hspace{2em} \theta \in \mathbb{R}^{n+1}θ=​θ0​θ1​θ2​⋮θn​​​θ∈Rn+1
  • 损失函数

    J(θ0,θ1,⋯ ,θn)=12m∑i=1m(hθ(x(i))−y(i))2J(\theta_0,\theta_1,\cdots,\theta_n) = \frac{1}{2m}\sum\limits_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2J(θ0​,θ1​,⋯,θn​)=2m1​i=1∑m​(hθ​(x(i))−y(i))2
  • 拟合参数

    • 梯度下降

      • Repeat

      θj:=θj−α1m∑i=1m(hθ(x(i))−y(i))2j=0,1,2,⋯ ,n\theta_j := \theta_j - \alpha \frac{1}{m}\sum\limits_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 \hspace{2em} j=0,1,2,\cdots,nθj​:=θj​−αm1​i=1∑m​(hθ​(x(i))−y(i))2j=0,1,2,⋯,n

      ​

逻辑回归(对数几率回归)

简介

  • 名字是“回归”,但实际却是一种分类学习方法

对数几率函数

y=11+e−zy = \frac{1}{1 + e ^ {-z}}y=1+e−z1​

对数几率函数是一种 Sigmoid函数,将 zzz 值转化为一个接近0或1的 yyy 值。

将对数几率函数作为 g−(⋅)g^- (\cdot)g−(⋅) 代入y=g−1(ωTx+b)y = g^{-1} (\omega ^T x + b)y=g−1(ωTx+b) ,得到:

y=11+e−(ωTx+b)y = \frac{1}{1 + e ^{-(\omega ^ T x + b)}}y=1+e−(ωTx+b)1​

类似于 ln⁡y=ωTx+b\ln y = \omega ^T x + blny=ωTx+b ,可变化为

ln⁡y1−y=ωTx+b\ln {\frac{y}{1-y}} = \omega^T x + bln1−yy​=ωTx+b

几率

若yyy 视为样本 xxx 作为正例的可能性,则 1−y1-y1−y 是其反例可能性,两者的比值

y1−y\frac{y}{1-y}1−yy​

称为 几率(odds)。反映了 xxx 作为正例的相对可能性。对几率取对数则得到 对数几率

ln⁡y1−y\ln{\frac{y}{1-y}}ln1−yy​
  • 可知,公式 y=11+e−(ωTx+b)y = \frac{1}{1 + e ^{-(\omega ^ T x + b)}}y=1+e−(ωTx+b)1​ 实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为 对数几率回归

优缺点

优点

  • 直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题

  • 不仅预测出“类别”,而是可得到近似概率预测,对许多需利用概率辅助决策的任务很有用

  • 对率函数是任意阶可导的凸函数,有很好的数学性质

缺点

  • 对数据和场景的适应能力有局限性,不如决策树算法适应性那么强

推导

已知数据 xxx 和 拟合函数 g(z),h(θ)g(z),h(\theta)g(z),h(θ) 训练其中未知参数 θ\thetaθ 使得对数似然函数 ℓ(θ)\ell(\theta)ℓ(θ) 最大。然后用所得的拟合函数进行二分类。

应用

  • Sigmoid函数

    g(z)=11+e−zg(z) = \frac{1}{1+e^{-z}}g(z)=1+e−z1​
  • 假设

    hθ(x)=g(θTx)=11+e−θTxh_{\theta}(x) = g(\theta^Tx) = \frac{1}{1+e^{-\theta^Tx}}hθ​(x)=g(θTx)=1+e−θTx1​
  • 参数

    θ=[θ0θ1θ2⋮θn]θ∈Rn+1\theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \\ \vdots \\ \theta_n \\ \end{bmatrix} \hspace{2em} \theta \in \mathbb{R}^{n+1}θ=​θ0​θ1​θ2​⋮θn​​​θ∈Rn+1
  • 损失函数

    J(θ)=1m∑i=1mcost(hθ(x(i)),yi)=−1m[∑i=1my(i)log⁡hθ(x(i))+(1−y(i))log⁡(1−hθ(x(i)))]其中cost(hθ(x),y)={−log(hθ(x))ify=1−log(1−hθ(x))ify=0等价于cost(hθ(x),y)=−ylog⁡(hθ(x))−(1−y)log(1−hθ(x))J(\theta) = \frac{1}{m}\sum\limits_{i=1}^{m} cost(h_\theta(x^{(i)}), y_i) \\ \hspace{10em} = - \frac{1}{m} [\sum\limits_{i=1}^{m}y^{(i)}\log h_\theta(x^{(i)}) + (1-y^{(i)})\log (1-h_\theta(x^{(i)}))] \\ 其中 \hspace{1em} cost(h_\theta(x),y) = \left\{ \begin{aligned} -log(h_\theta(x)) \hspace{2em} if \hspace{1em} y = 1 \\ -log(1- h_\theta(x)) \hspace{2em} if \hspace{1em} y = 0 \\ \end{aligned} \right . \hspace{1em} 等价于 \\ \hspace{1em} \\ cost(h_\theta(x),y) = -y\log(h_\theta(x)) - (1-y)log(1-h_\theta(x))J(θ)=m1​i=1∑m​cost(hθ​(x(i)),yi​)=−m1​[i=1∑m​y(i)loghθ​(x(i))+(1−y(i))log(1−hθ​(x(i)))]其中cost(hθ​(x),y)={−log(hθ​(x))ify=1−log(1−hθ​(x))ify=0​等价于cost(hθ​(x),y)=−ylog(hθ​(x))−(1−y)log(1−hθ​(x))
  • 拟合参数

    • 想要 min⁡θJ(θ)\min \limits_{\theta} J(\theta)θmin​J(θ)

  • 梯度下降

    • Repeat

      θj:=θj−α∂∂θjJ(θ)其中∂∂θjJ(θ)=1m∑i=1m(hθ(x(i)−y(i))xj(i)等价于θj:=θj−α∑i=1m(hθ(x(i)−y(i))xj(i)\theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta) \\ 其中 \hspace{1em} \frac{\partial}{\partial \theta_j} J(\theta) = \frac{1}{m}\sum\limits_{i=1}^{m} (h_\theta(x^{(i)} - y^{(i)})x_j^{(i)} \hspace{1em} 等价于\\ \theta_j := \theta_j - \alpha\sum\limits_{i=1}^{m} (h_\theta(x^{(i)} - y^{(i)})x_j^{(i)}θj​:=θj​−α∂θj​∂​J(θ)其中∂θj​∂​J(θ)=m1​i=1∑m​(hθ​(x(i)−y(i))xj(i)​等价于θj​:=θj​−αi=1∑m​(hθ​(x(i)−y(i))xj(i)​
  • 做出预测

    • 给定新的 xxx,输出 hθ(x)h_\theta (x)hθ​(x) ,即 p(y=1∣x;θ)p(y=1|x;\theta)p(y=1∣x;θ)

逻辑回归中的代价函数

  • 如果模仿多重线性回归,使用最小二乘法

    J(θ)=∑i=1m12(hθ(x(i))−y(i))2其中hθ(x)=g(θTx)=11+e−θTxJ(\theta) = \sum\limits_{i=1}^{m}\frac{1}{2}(h_\theta(x^{(i)}) - y^{(i)})^2 \\ 其中 \hspace{1em} h_{\theta}(x) = g(\theta^Tx) = \frac{1}{1+e^{-\theta^Tx}}J(θ)=i=1∑m​21​(hθ​(x(i))−y(i))2其中hθ​(x)=g(θTx)=1+e−θTx1​
  • 会发现这时一个非凸函数,意味着代价函数有许多局部最小值,不利于求解

  • 换一种思路,hθ(x)h_{\theta}(x)hθ​(x) 可是视为 y=1y=1y=1 的后验估计,所以有

    p(y=1∣x;θ)=hθ(x)p(y=0∣x;θ)=1−hθ(x)p(y=1|x;\theta) = h_\theta(x) \\ p(y=0|x;\theta) = 1-h_\theta(x)p(y=1∣x;θ)=hθ​(x)p(y=0∣x;θ)=1−hθ​(x)
  • 两式写成一般形式

    p(y∣x;θ)=hθ(x)y(1−hθ(x))1−yp(y|x;\theta) = h_\theta(x)^y (1-h_\theta(x))^{1-y}p(y∣x;θ)=hθ​(x)y(1−hθ​(x))1−y
  • 用极大似然估计,根据给定的训练集,估计出参数 θ\thetaθ

    L(θ)=∏i=1mp(y(i)∣x(i);θ)=∏i=1mhθ(x(i))y(i)(1−hθ(x(i)))1−y(i)L(\theta) = \prod\limits_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta) = \prod\limits_{i=1}^{m}h_\theta(x^{(i)})^{y^{(i)}} (1-h_\theta(x^{(i)}))^{1-{y^{(i)}}}L(θ)=i=1∏m​p(y(i)∣x(i);θ)=i=1∏m​hθ​(x(i))y(i)(1−hθ​(x(i)))1−y(i)
  • 为了简化运算,上等式两边取对数

    ℓ(θ)=ln⁡L(θ)=∑i=1my(i)ln⁡(hθ(x(i)))+(1−y(i))ln⁡(1−hθ(x))\ell(\theta) = \ln {L(\theta)} = \sum\limits_{i=1}^{m}y^{(i)} \ln (h_\theta(x^{(i)}) ) + (1-y^{(i)})\ln (1-h_\theta(x))ℓ(θ)=lnL(θ)=i=1∑m​y(i)ln(hθ​(x(i)))+(1−y(i))ln(1−hθ​(x))
  • 上式,要求的使得 ℓ(θ)\ell(\theta)ℓ(θ) 最大的 θ\thetaθ 。两边取负号,得到代价函数,以便优化算法最小化代价函数

    J(θ)=−ℓ(θ)=−∑i=1my(i)ln⁡(hθ(x(i)))+(1−y(i))ln⁡(1−hθ(x))J(\theta) = -\ell(\theta) = - \sum\limits_{i=1}^{m}y^{(i)} \ln (h_\theta(x^{(i)}) ) + (1-y^{(i)})\ln (1-h_\theta(x))J(θ)=−ℓ(θ)=−i=1∑m​y(i)ln(hθ​(x(i)))+(1−y(i))ln(1−hθ​(x))
  • 向量化

    J(θ)=−yln⁡(hθ(x))−(1−y)ln(1−hθ(x))J(\theta) = -y\ln(h_\theta(x)) - (1-y)ln(1-h_\theta(x))J(θ)=−yln(hθ​(x))−(1−y)ln(1−hθ​(x))
  • 等价于

    J(θ)={−log(hθ(x))ify=1−log(1−hθ(x))ify=0J(\theta) = \left\{ \begin{aligned} -log(h_\theta(x)) \hspace{2em} if \hspace{1em} y = 1 \\ -log(1- h_\theta(x)) \hspace{2em} if \hspace{1em} y = 0 \\ \end{aligned} \right .J(θ)={−log(hθ​(x))ify=1−log(1−hθ​(x))ify=0​
  • 这样一个函数

    • 上图中 J(ω)=J(θ),ϕ(z)=hθ(x)J(\omega) = J(\theta),\phi(z) = h_\theta(x)J(ω)=J(θ),ϕ(z)=hθ​(x),可以看出

      • 如果样本的值是1的话,估计值hθ(x)h_\theta(x)hθ​(x)越接近1付出的代价就越小,反之越大

      • 如果样本的值是0的话,估计值hθ(x)h_\theta(x)hθ​(x)越接近0付出的代价就越小,反之越大

参考

用途

  • 寻找危险因素

    • 寻找某一疾病的危险因素等

  • 预测

    • 根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大

  • 判别

    • 实际上跟预测有些类似,也是根据模型,判断某人属于某病或属于某种情况的概率有多大,也就是看一下这个人有多大的可能性是属于某病

线性判别分析

线性判别分析(Linear Discriminat Analysis,LDA)是一种经典的线性学习方法。

基本思想

  • 给定训练样例集,设法将样例投影到一条直线上

  • 使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离

  • 在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别

多分类学习

  • 利用二分类学习器来解决多分类问题

  • 多分类学习的基本思路是 拆解法, 将多分类任务拆为若干个二分类任务求解:

    • 先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器

    • 在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果

拆分策略

  • 一对一

    • 将N个类别两两配对,产生 N(N−1)/2N(N-1)/2N(N−1)/2 个二分类任务

  • 一对其余

    • N个训练样例,将一个类的样例作为正例,所有其他类的样例作为反例

    • 比较:

      • OvO 储存开销和测试时间开销通常比 OvR 更大

      • OvO 的训练时间开销通常比 OvR 更小

      • 性能相当

  • 多对多

参考

类别不平衡问题

  • 类别不平衡问题指分类任务中不同类别的训练样例数目差别很大的情况

  • 观测几率:m+m−=正例数据反例数目\frac{m^+}{m^-} = \frac{正例数据}{反例数目}m−m+​=反例数目正例数据​

  • 分类器的预测几率高于观测几率就应判定为正例

    • y′1−y′=y1−y∗m+m−\frac{y'}{1-y'} = \frac{y}{1-y} * \frac{m^+}{m^-}1−y′y′​=1−yy​∗m−m+​

  • 针对类别不平衡一个基本策略是 再缩放

    • 对反类样例进行 欠采样,使正负样例数目相近

    • 对正类样例进行 过采样,使正负样例数目相近

    • 直接基于原始训练集进行学习,但是将公式y′1−y′=y1−y∗m+m−\frac{y'}{1-y'} = \frac{y}{1-y} * \frac{m^+}{m^-}1−y′y′​=1−yy​∗m−m+​ 嵌入决策过程,称为 阈值移动

问题

逻辑回归于多重线性回归的区别

两者最大的区别是因变量不同。

线性回归

逻辑回归

目的

概率

分类

$y(i)$

未知

{0,1}

函数

拟合函数

预测函数

参数计算方式

最小二乘

最大似然估计

因变量类型

连续性数值变量

分类型变量

变量分布

服从正态分布

没有要求

变量和因变量关系

线性关系

没有要求

分析因变量与自变量的关系

分析因变量取某个值的概率与自变量的关系

Logistic回归与线性回归实际上有很多相同之处,最大的区别就在于他们的因变量不同,其他的基本都差不多,正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalized linear model)。

这一家族中的模型形式基本上都差不多,不同的就是因变量不同,如果是连续的,就是多重线性回归,如果是二项分布,就是logistic回归。logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最为常用的就是二分类的logistic回归。

因变量分布类型

回归名称

连续

多重线性回归

二项分布

逻辑回归

Poisson分布

Poisson回归

负二项分布

负二项回归

参考

回归方程
自变量
参考一
参考一
1
2