机器学习day5-随机森林和线性代数1

十 集成学习方法之随机森林

集成学习的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。大致可以分为:Bagging,Boosting 和 Stacking 三大类型。

(1)每次有放回地从训练集中取出 n 个训练样本,组成新的训练集;

(2)利用新的训练集,训练得到M个子模型;

(3)对于分类问题,采用投票的方法,得票最多子模型的分类类别为最终的类别;(取众数?平均数?)

随机森林属于集成学习,通过构建一个包含多个决策树(通常称为基学习器或弱学习器)的森林,每棵树都在不同的数据子集和特征子集上进行训练,最终通过投票或平均预测结果(取结果最多的数据作为预测数据)来产生更准确和稳健的预测。

优点:提高了预测精度,降低了过拟合风险,能够处理高维度和大规模数据集

1算法原理

  • 随机: 特征随机,训练集随机(分类器是一样的,模型不一样)

    • 样本:对于一个总体训练集T,T中共有N个样本,每次有放回地随机选择n个样本。用这n个样本来训练一个决策树。

    • 特征:假设训练集的特征个数为d,每次仅选择k(k<d)个来构建决策树。

  • 森林: 多个决策树分类器构成的分类器, 因为随机,所以可以生成多个决策树

  • 处理具有高维特征的输入样本,而且不需要降维 (在进行训练集分类的时候就相当于已经进行了降维)

  • 使用平均或者投票来提高预测精度和控制过拟合

2API

class sklearn.ensemble.RandomForestClassifier
​
参数:
n_estimators:   int, default=100
森林中树木的数量。(决策树个数)
​
criterion:  {“gini”, “entropy”}, default=”gini” 决策树属性划分算法选择当criterion取值为“gini”时采用 基尼不纯度(Gini impurity)算法构造决策树;(基尼指数越小纯度越高,以最小的作为决策树第一层)当criterion取值为 “entropy” 时采用信息增益( information gain)算法构造决策树.max_depth:  int, default=None 树的最大深度。
eg1
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
from sklearn.feature_extraction import DictVectorizer
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
#数据导入
data = pd.read_csv('./src/titanic/titanic.csv')
# print(data["age"].mode()[0])
#数据预处理
data["age"].fillna(data["age"].mode()[0],inplace=True)
# print(data.tail())
y=data[["survived"]].to_numpy()
# print(y)
data.drop(["survived"],axis=1,inplace=True)
# print(data.tail())
x=data[["age","sex","pclass"]]
#数据转换
dict1=x.to_dict(orient='records')
# dict1
vec=DictVectorizer(sparse=False)
x=vec.fit_transform(dict1)
# print(x)
# print(y)
# 数据集划分
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.25,random_state=666)
# 标准化
scaler=StandardScaler()
x_train=scaler.fit_transform(x_train)
# 训练模型
model=RandomForestClassifier(n_estimators=100,max_depth=8,criterion='gini')
model.fit(x_train,y_train)
# 模型评估
x_test=scaler.transform(x_test)
rank=model.score(x_test,y_test)
print("综合得分:\n",rank)

十一 线性回归(重点)

标称型数据(Nominal Data)是统计学和数据分析中的一种数据类型,它用于分类或标记不同的类别或组别,数据点之间并没有数值意义上的距离或顺序。

特点:

  1. 无序性:标称数据的各个类别之间没有固有的顺序关系。例如,“性别”可以分为“男”和“女”,但“男”和“女”之间不存在大小、高低等顺序关系。

  2. 非数值性:标称数据不能进行数学运算,因为它们没有数值含义。

  3. 多样性:标称数据可以有很多不同的类别,具体取决于研究的主题或数据收集的目的。

  4. 比如西瓜的颜色,纹理,敲击声响这些数据就属于标称型数据,适用于西瓜分类

连续型数据(Continuous Data)表示在某个范围内可以取任意数值的测量,这些数据点之间有明确的数值关系和距离。

特点:

  1. 可测量性:连续型数据通常来源于物理测量,如长度、重量、温度、时间等,这些量是可以精确测量的。

  2. 无限可分性:连续型数据的取值范围理论上是无限可分的,可以无限精确地细分。

  3. 数值运算:连续型数据可以进行数学运算,如加、减、乘、除以及求平均值、中位数、标准差等统计量。

在数据分析中,连续型数据的处理和分析方式非常丰富,常见的有:

  • 描述性统计:计算均值、中位数、众数、标准差、四分位数等,以了解数据的中心趋势和分布情况。

  • 概率分布:通过拟合概率分布模型,如正态分布、指数分布、伽玛分布等,来理解数据的随机特性。

  • 图形表示:使用直方图、密度图、箱线图、散点图等来可视化数据的分布和潜在的模式。

  • 回归分析:建立连续型变量之间的数学关系,预测一个或多个自变量如何影响因变量。

  • 比如西瓜的甜度,大小,价格这些数据就属于连续型数据,可以用于做回归

1回归

回归的目的是预测数值型的目标值y,求回归系数的过程就是回归,根据回归系数可以得到预测值。

2线性回归

线性回归是机器学习中一种有监督学习的算法,回归问题主要关注的是因变量(需要预测的值)和一个或多个数值型的自变量(预测变量)之间的关系。

因变量(需要预测的值):目标变量,target/y

自变量(影响目标变量的因素):离散值/连续值

模型:因变量和自变量之间的关系

人工智能中的线性回归:数据集中很难找到一个完美的方程式完全满足所有的目标值,通过给出的数据集去拟合一条直线尽可能满足所要求的模型关系,从而得到对应的尽可能准确的目标值。

3损失函数

均方差:就是每个点到线的竖直方向的距离平方 求和 ,再平均, 这个数值最小时的直线就是最优直线

1.给出数据集,
x_i和对应的真实值y_i

在坐标轴上画出对应的点(离散或者连续),如果是离散的点,需要找一条直线使得这些点尽可能多地在这条直线上,或者能够尽可能均匀地分布在这条直线的两边,达到损失值最小的目标,使其尽可能地接近能够进行准确预测的目标函数(最优直线)

2.假设该目标函数为:
y=wx+b

已知
x_1,x_2,x_3...x_i

将x带入目标函数得到预测值:
y_i^,=wx_i+b
 

那么得到真实值和预算值的误差:
{y_i-y_i^,}

总误差(总损失值)为:
loss={(y_1-y_1^,)^2}+{(y_2-y_2^,)^2}+....{(y_i-y_i^,)^2}

平方是因为真实值和预算值的误差有可能为负数,正数和负数直接相加会抵消。

然后求平均误差(总误差会受到样本点的个数的影响,样本点越多,该值就越大,对其平均化求得平均值,这样就能解决样本点个数不同带来的影响),由此得到损失函数
\bar e = \frac{1}{n} \textstyle\sum_{i=1}^{n}(y_{i}-w x_{i} - b)^{2}

要求使得损失值最小时候的w值,则:

先假设b=0方便计算:

求得w=0.795时损失函数取得最小值

那么在b=0时,最优解函数为:
y=0.795x+0

4多参数回归

实际情况下,影响目标y的因素不止一个,此时x就从1个变成了n个,对应的w也变成了n个,那么所求的目标函数就从一元线性回归变成了多元线性回归函数
y^,=w_1x_1+w_2x_2+....w_nx_n+b

假设:
w_0=b

那么损失函数为:
loss=[(y_1-y_1^,)^2+(y_2-y_2^,)^2+....(y_n-y_n^,)^2]/n

需要求当
W{(w_1,w_2..w_0)}=?时
loss的最小值

5最小二乘法MSE

1.矩阵相关知识
(A^T)^T = A:一个矩阵的转置的转置等于原矩阵。
(A + B)^T = A^T + B^T:两个矩阵和的转置等于它们各自转置的和。
(kA)^T = kA^T:一个矩阵乘以一个标量的转置等于该矩阵的转置乘以该标量。
(AB)^T = B^T A^T:两个矩阵乘积的转置等于它们各自转置的乘积,但顺序相反。
 

2.最小二乘法

假设有8个不同属性的x得到一个真实的y值,要求其中对应的w的值,那么对应的目标函数为:
h(x)=w_1x_1+w_2x_2+w_3x_3+w_4x_4+w_5x_5+w_6x_6+w_7x_7+w_8x_8+w_0x_0

可以将数据对应的x和y转换为对应的矩阵X和y,所要求的w则转换为对应的矩阵W,我们要求的是w对应哪些数值时的误差/损失最小。

对应的损失函数为:

此时就得到最小二乘法公式

其中:
\\ ||A||^2是欧几里得范数的平方\,也就是每个元素的平方相加

推导1:

推导2:链式求导

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/16907.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

jdk1.7的hashmap为什么会出现死循环问题

原因在于链表结构出现了环状。为什么会出现环状的链表&#xff1f; 原因在于多个线程同时进行扩容的时候。 由于一个线程使用的是头插法进行迁移数据到新开辟的数组中&#xff0c;使得链表中的数据是颠倒的顺序。 而当另一个线程扩容的时候就可能因为这个颠倒的顺序而出现指针…

微信小程序navigateTo:fail webview count limit exceed

theme: nico 你们好&#xff0c;我是金金金。 场景 uniapp编写微信小程序&#xff0c;使用uni.navigateTo跳转的过程中报错如下&#xff1a; 报错意思也非常明显了&#xff1a;errMsg":"navigateTo:fail webview 数量超出限制 排查 排查之前我先贴一下代码 代码非…

逆向攻防世界CTF系列33-流浪者

逆向攻防世界CTF系列33-流浪者 shiftf12看到pass&#xff0c;跟进 是个输入的处理&#xff0c;其实很简单&#xff0c;看不懂也没关系&#xff0c;先看看return 这里strcmp成功后return的就是成功 最后要为KanXueCTF2019JustForhappy while ( *(_DWORD *)(a1 4 * v4) < 0x…

算法--解决二叉树遍历问题

第一 实现树的结构 class Node(): # 构造函数&#xff0c;初始化节点对象&#xff0c;包含数据和左右子节点 def __init__(self, dataNone): self.data data # 节点存储的数据 self.left None # 左子节点&#xff0c;默认为None self.rig…

Ubuntu22.04.2 k8s部署

k8s介绍 简单介绍 通俗易懂的解释&#xff1a; Kubernetes&#xff08;也被称为 K8s&#xff09;就像是一个大管家&#xff0c;帮你管理你的云计算服务。想象一下&#xff0c;你有很多个小程序&#xff08;我们称之为“容器”&#xff09;&#xff0c;每个都在做不同的事情&…

游戏引擎学习第12天

视频参考:https://www.bilibili.com/video/BV1yom9YnEWY 这节没讲什么东西&#xff0c;主要是改了一下音频的代码 后面有介绍一些alloc 和malloc,VirtualAlloc 的东西 _alloca 函数&#xff08;或 alloca&#xff09;分配的是栈内存&#xff0c;它的特点是&#xff1a; 生命周…

Linux-软件管理-本地仓库和网络资源仓库配置(RHCSA)

该章节的目录如下&#xff1a; 认识rpm包 将设备挂载到/mnt上面 查看光驱上的相关信息 使用rpm包管理软件 仓库的配置(重要) 无相关文件 本地仓库配置&#xff08;书写相关的仓库文件&#xff09; 配置流程 效果测试&#xff08;安装卸载&#xff09; 查看仓库 清理…

【arxiv‘24】Vision-Language Navigation with Continual Learning

论文信息 题目&#xff1a;Vision-Language Navigation with Continual Learning 视觉-语言导航与持续学习 作者&#xff1a;Zhiyuan Li, Yanfeng Lv, Ziqin Tu, Di Shang, Hong Qiao 论文创新点 VLNCL范式&#xff1a;这是一个新颖的框架&#xff0c;它使得智能体能够在适…

数字化建设:指标如何驱动的企业KPI设计?

我们以KPI设定为例&#xff0c;简单说明在一套科学的经营分析体系的加持下&#xff0c;企业的经营KPI应该如何设定&#xff0c;如图所示。 指标驱动的企业KPI设计 每年年初企业做战略规划的同时&#xff0c;会启动年度业务KPI的设定。这个时候经营分析团队会主导整个过程。首先…

初级数据结构——栈题库(c++)

目录 前言1.杭电oj——Bitset2.杭电oj——进制转换[3.力扣——LCR 123. 图书整理 I](https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/description/)[4.力扣——LCR 027. 回文链表](https://leetcode.cn/problems/aMhZSa/)[5.力扣——1614. 括号的最大嵌…

数字化转型企业架构设计手册(交付版),企业数字化转型建设思路、本质、数字化架构、数字化规划蓝图(PPT原件获取)

1、企业架构现状分析 2、企业架构内容框架 3、企业架构设计方法 3.1 、业务架构设计方法 3.2 、数据架构设计方法 3.3 、应用架构设计方法 3.4 、技术架构设计方法 软件全套资料部分文档清单&#xff1a; 工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项申请审批表&…

⾃动化运维利器Ansible-基础

Ansible基础 一、工作原理二、快速入门2.1 测试所有资产的网络连通性2.2 发布文件到被管理节点(资产) 三、资产(被管理节点)3.1 静态资产3.1.1 自定义资产3.1.2 自定义资产的使用3.1.3 资产选择器 四、Ansible Ad-Hoc 命令4.1 模块类型4.1.1 command & shell 模块4.1.2 cop…

鸿蒙NEXT自定义组件:太极Loading

【引言】&#xff08;完整代码在最后面&#xff09; 本文将介绍如何在鸿蒙NEXT中创建一个自定义的“太极Loading”组件&#xff0c;为你的应用增添独特的视觉效果。 【环境准备】 电脑系统&#xff1a;windows 10 开发工具&#xff1a;DevEco Studio NEXT Beta1 Build Vers…

AVL树了解并简单实现

这篇文章默认知道二叉搜索树&#xff0c;如果了解并不多可以先看看二叉搜索树了解和实现-CSDN博客 目录 1.AVL树概念 2.AVL树节点定义 3.AVL树的插入&#xff08;重点&#xff09; 3.1AVL树 3.2AVL树的旋转 3.3AVL树插入代码 4.AVL树的验证 5.AVL树的删除 6.AVL树的性能…

【MySQL】索引原理及操作

目录 索引原理 初识索引 磁盘原理 磁盘与系统之间的关系 MySQL、系统、磁盘之间的关系 理解索引 页目录 页目录设计的数据结构问题 聚簇索引与非聚簇索引 遗留问题 索引操作 创建索引 查询索引 删除索引 其他索引概念与操作 索引原理 索引&#xff08;I…

代码随想录算法训练营第三十一天| 56. 合并区间 、738.单调递增的数字 。c++转java

56. 合并区间 class Solution {public int[][] merge(int[][] intervals) {//对区间按照右边界排序Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0]));List<int[]> p new LinkedList<>();int l intervals[0][0],r intervals[0][1];for(int i 1;i…

厦大南洋理工最新开源,一种面向户外场景的特征-几何一致性无监督点云配准方法

导读 本文提出了INTEGER&#xff0c;一种面向户外点云数据的无监督配准方法&#xff0c;通过整合高层上下文和低层几何特征信息来生成更可靠的伪标签。该方法基于教师-学生框架&#xff0c;创新性地引入特征-几何一致性挖掘&#xff08;FGCM&#xff09;模块以提高伪标签的准确…

模型运行速度笔记: s/epoch VS s/iter

1 概念介绍 在模型训练中&#xff1a; s/epoch 表示每个epoch所需的秒数&#xff0c;即完成一轮完整数据集训练的时间。s/iter 表示每个iteration&#xff08;迭代&#xff09;所需的秒数&#xff0c;即处理一个batch的时间。 它们的关系是&#xff1a; 2 举例 比如我tra…

k8s 中传递参数给docker容器

文章目录 docker启动时传递参数使用k8s env传递完全覆盖 ENTRYPOINT 和 CMD 在 Kubernetes 中&#xff0c;可以通过多种方式将参数传递给 Dockerfile 或其运行的容器&#xff0c;常见的方式包括使用环境变量、命令行参数、配置文件等。以下是一些常用的方法&#xff1a; docker…

Map Set

在学习TreeMap和TreeSet之前需要先学习有关搜索树的相关知识以及接口Map和Set。 1. 搜索树 1.1 概念 二叉搜索树又称二叉排序树&#xff0c;其特点是&#xff0c;该节点的左边都比其小&#xff0c;右边都比其大&#xff0c;每一棵子树都必须满足这个条件。如下图所示例子。2…