第3章:线性模型

线性回归

在这里插入图片描述
优点:简单、基本、可理解性好。
适用于处理数值型数据。编码:序关系(衣服号码s、m、l等等)独热编码(00010)
在这里插入图片描述

求解

在这里插入图片描述
求偏导让导数为0?为什么?
希望找到极值点,即误差最小的时候。

在这里插入图片描述

多元线性回归

将b和w合并,x加一个1。
在这里插入图片描述
在这里插入图片描述
求逆矩阵时如果不满秩会解出多个解,这个时候就要根据自己的偏好进行选择了。
在这里插入图片描述

广义线性模型

在这里插入图片描述
在这里插入图片描述

对率回归(分类)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为什么不能求偏导求解?因为这个方法只适用于凸函数。

求解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为什么要加ln?因为两个很小的小数相乘会造成浮点数下溢,取ln可以将乘法变成加法。
在这里插入图片描述
在这里插入图片描述
最后利用梯度下降法求解即可。
在这里插入图片描述

线性判别分析

LDA思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能近(均值),异类尽可能远(方差)。
在这里插入图片描述

损失函数

在这里插入图片描述
二范数
a=(a1,a2)
∣ ∣ a ∣ ∣ 2 a = ( a 1 2 + a 2 2 ) 2 ||a||_2^a=(\sqrt{a_1^2+a_2^2})^2 ∣∣a2a=(a12+a22 )2
在这里插入图片描述
在这里插入图片描述
为什么上下的w不能约掉?因为要求解的就是w。
因为上下都有w是成比例的,没有唯一解,所以可以将分母固定为1(固定分子也行,等于其他数也行,习惯问题)。

求解

拉格朗日乘子法
在这里插入图片描述
查阅矩阵微分公式
在这里插入图片描述
为什么SB=SBT?SB SW为对称矩阵?SB:列向量乘转置矩阵就是对称的。SW协方差矩阵是对称的。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
广义特征值
在这里插入图片描述
广义瑞利商
在这里插入图片描述
厄米矩阵:
在这里插入图片描述
在这里插入图片描述

多分类

一般是基于一些策略,利用二分类学习器解决多分类问题。

  • 一对一:每两个类别训练一个分类器,总共训练n*(n-1)/2个,最后投票决定。
  • 一对其余:使用一个类别为正例,其余均为反例。使用n个分类器进行分类,如果仅有一个分类器的结果为正例,那么就为该类别,否则取置信度最大的正例对应的类别。
  • 多对多:正、反类必须构造出特殊的设计–纠错输出码。1.对N个类别做M次划分,训练M个分类器。2.将预测标记组成编码,分别利用M个分类器对每种类别进行预测,然后对新样本进行预测,看预测出来的序列与哪种类别距离最近。

类别不平衡

什么时候处理类别不平衡?
小类很重要的时候。
平时分类隐含的是以0.5为分界,但是如果正负不同样比例的时候,需要改变。
但是,一般的数据都是总体的一部分,很难准确估计出来总体样本的类别比例。
在这里插入图片描述
在这里插入图片描述

  • 过采样:1.copy小类(会增大噪声的影响)2.SMOTE在两个小样本之间插值。
  • 欠采样:1.丢掉一些样本(不确定会不会丢掉重要样本)2.EasyEnsemble集成学习的思想,每次从大类中选取和小类相同的样本数量,重复,最后投票。
  • 阈值移动:(支持向量机)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值