机器学习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:链式求导

3.最小二乘法API
sklearn.linear_model.LinearRegression()
功能: 普通最小二乘法线性回归, 权重和偏置是直接算出来的,对于数量大的不适用,因为计算量太大,计算量太大的适合使用递度下降法
​
参数:
fit_intercept   bool, default=True是否计算此模型的截距(偏置)。如果设置为False,则在计算中将不使用截距(即,数据应中心化)。
属性:  
coef_ 回归后的权重系数
intercept_ 偏置
​
print("权重系数为:\n", estimator.coef_)  #权重系数与特征数一定是同样的个数。
print("偏置为:\n", estimator.intercept_)
​
eg2
#最小二乘法
from sklearn.linear_model import LinearRegression
import numpy as np
model=LinearRegression(filter=True,)
data=np.array([[0,14,8,0,5,-2,9,-3,399],[-4,10,6,4,-14,-2,-14,8,-144],[-1,-6,5,-12,3,-3,2,-2,30],[5,-2,3,10,5,11,4,-8,126],[-15,-15,-8,-15,7,-4,-12,2,-395],[11,-10,-2,4,3,-9,-6,7,-87],[-14,0,4,-3,5,10,13,7,422],[-3,-7,-2,-8,0,-6,-5,-9,-309]])
x=data[:,0:8]#1:7==>123456
y=data[:,-1]
model.fit(x,y)
print("权重参数:\n",model.coef_)
print("截距:\n",model.intercept_)
#预测
y_pred=model.predict([[-4,10,6,4,-14,-2,-14,8,-144]])
print("推理结果:\n",y_pred)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel使用-弹窗“此工作簿包含到一个或多个可能不安全的外部源的链接”的发生与处理

文章目录 前言一、探讨问题发生原因1.引入外部公式2.引入外部数据验证二、问题现象排查及解决1.排查公式2.排查数据验证3.特殊处理方式总结前言 作为一种常用的办公软件,Excel被大家所熟知。尽管使用了多年,有时候在使用Excel时候也会发生一些不太常见的现象,需要用心核查下…

跨越网络边界:IPv6与零信任架构的深度融合

2024年&#xff0c;工信部发布了《关于开展“网络去NAT”专项工作 进一步深化IPv6部署应用的通知》&#xff0c;加速了国内网络由IPv4向IPv6的转型步伐。未来&#xff0c;各行各业将逐步去NAT&#xff0c;逐步向IPv6迁移。在此过程中&#xff0c;网络安全解决方案和产品能力将面…

从大数据到大模型:现代应用的数据范式

作者介绍&#xff1a;沈炼&#xff0c;蚂蚁数据部数据库内核负责人。2014年入职蚂蚁&#xff0c;承担蚂蚁集团的数据库架构职责&#xff0c;先后负责了核心链路上OceanBase&#xff0c;OceanBase高可用体系建设、NoSQL数据库产品建设。沈炼对互联网金融、数据库内核、数据库高可…

华为eNSP:MSTP

一、什么是MSTP&#xff1f; 1、MSTP是IEEE 802.1S中定义的生成树协议&#xff0c;MSTP兼容STP和RSTP&#xff0c;既可以快速收敛&#xff0c;也提供了数据转发的多个冗余路径&#xff0c;在数据转发过程中实现VLAN数据的负载均衡。 2、MSTP可以将一个或多个VLAN映射到一个Inst…

MATLAB绘制克莱因瓶

MATLAB绘制克莱因瓶 clc;close all;clear all;warning off;% clear all rand(seed, 100); randn(seed, 100); format long g;% Parameters u_range linspace(0, 2*pi, 100); v_range linspace(0, pi, 50); [U, V] meshgrid(u_range, v_range);% Parametric equations for t…

2、 家庭网络发展现状

上一篇我们讲了了解家庭网络历史(https://blog.csdn.net/xld_hung/article/details/143639618?spm1001.2014.3001.5502),感兴趣的同学可以看对应的文章&#xff0c;本章我们主要讲家庭网络发展现状。 关于家庭网络发展现状&#xff0c;我们会从国内大户型和小户型的网络说起&…

Vue3 -- 项目配置之eslint【企业级项目配置保姆级教程1】

下面是项目级完整配置1➡eslint&#xff1a;【吐血分享&#xff0c;博主踩过的坑你跳过去&#xff01;&#xff01;跳不过去&#xff1f;太过分了给博主打钱】 浏览器自动打开项目&#xff1a; 你想释放双手吗&#xff1f;你想每天早上打开电脑运行完项目自动在浏览器打开吗&a…

【SQL】E-R模型(实体-联系模型)

目录 一、介绍 1、实体集 定义和性质 属性 E-R图表示 2. 联系集 定义和性质 属性 E-R图表示 一、介绍 实体-联系数据模型&#xff08;E-R数据模型&#xff09;被开发来方便数据库的设计&#xff0c;它是通过允许定义代表数据库全局逻辑结构的企业模式&#xf…

LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/143749468 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 影响 (…

基于Java Springboot成都旅游网

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

css 使用图片作为元素边框

先看原始图片 再看效果 边框的四个角灭有拉伸变形,但是图片的中部是拉伸的 代码 border-style: solid;/* 设置边框图像的来源 */border-image-source: url(/static/images/mmwz/index/bk_hd3x.png);/* 设置如何切割图像 */border-image-slice: 66;/* 设置边框的宽度 */border…

【阅读记录-章节1】Build a Large Language Model (From Scratch)

目录 1. Understanding large language models1.1 What is an LLM?补充介绍人工智能、机器学习和深度学习的关系机器学习 vs 深度学习传统机器学习 vs 深度学习&#xff08;以垃圾邮件分类为例&#xff09; 1.2 Applications of LLMs1.3 Stages of building and using LLMs1.4…

【WSL+Ubuntu】默认用户被意外变更为 root 后切回原来的默认用户

引言 在使用 Windows Subsystem for Linux (WSL) Ubuntu 时&#xff0c;在 ~ 目录下使用 ls 命令&#xff0c;发现所有文件都消失了&#xff0c;让我误以为文件被清空了。实际上是因为WSL Ubuntu的默认用户被意外地改变为了 root。那么&#xff0c;如何恢复并切回原来的默认用…

模式:每个服务一个数据库

Pattern: Database per service。 背景 如用微服务架构模式开发一个在线商店应用程序。大多数服务需要在某种数据库中持久化数据。如&#xff0c;订单服务存储订单信息&#xff0c;而客户服务存储客户信息。 问题 微服务应用程序中的数据库架构是什么&#xff1f; 驱动力…

Acme PHP - Let‘s Encrypt

Lets Encrypt是一个于2015年三季度推出的数字证书认证机构&#xff0c;旨在以自动化流程消除手动创建和安装证书的复杂流程&#xff0c;并推广使万维网服务器的加密连接无所不在&#xff0c;为安全网站提供免费的SSL/TLS证书。 使用PHP来更新证书&#xff1a; Acme PHP | Rob…

如何实现主备租户的无缝切换 | OceanBase应用实践

对于DBA而言&#xff0c;确保数据库的高可用性、容灾等能力是其日常工作中需要持续思考和关注的重要事项。一方面&#xff0c;可以利用数据库自身所具备的功能来实现这些目标&#xff1b;若数据库本身不提供相应功能&#xff0c;DBA则需寻找其他工具来增强数据库的高可用性和容…

超越GPT-4o-mini | 北大开源「国产o1」大模型,{多阶段自主推理}让小模型也能“放大招“!

01、LLaVA-o1背景简介 以OpenAI o1为代表的大型语言模型展示了强大的推理能力&#xff0c;这充分的验证了语言模型推理时间缩放的有效性。然而&#xff0c;视觉对于使模型能够充分理解世界并扩展其认知能力同等重要。因此&#xff0c;开发一个融合语言和视觉的多模态模型&#…

Unity类银河战士恶魔城学习总结(P126 Item ToolTip物品提示)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了把鼠标放到物品上面就会显示物品属性 UI_ItemTooltip.cs 功能实现&#xff1a;该脚本的核心功能是展示和隐藏物品的工具提示…

11.13机器学习_线性回归

十 集成学习方法之随机森林 机器学习中有一种大类叫集成学习&#xff08;Ensemble Learning&#xff09;&#xff0c;集成学习的基本思想就是将多个分类器组合&#xff0c;从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话&#xff1a;三个…

【机器学习】数学知识:欧式距离(Euclidean Distance)和曼哈顿距离(Manhattan Distance)

欧式距离和曼哈顿距离是两种常用的距离度量方法&#xff0c;用于衡量两点之间的相似性或差异性。它们在几何分析、数据挖掘、机器学习等领域有广泛应用。 1. 欧式距离 概念 欧式距离&#xff08;Euclidean Distance&#xff09;是最常见的直线距离度量方法&#xff0c;源于欧…