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

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

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

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

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

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

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

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

1算法原理

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

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

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

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

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

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

2API

python 复制代码
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
python 复制代码
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)
复制代码
python 复制代码
# 数据集划分
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.给出数据集,
和对应的真实值

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

2.假设该目标函数为:

已知

将x带入目标函数得到预测值:

那么得到真实值和预算值的误差:

总误差(总损失值)为:

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

然后求平均误差(总误差会受到样本点的个数的影响,样本点越多,该值就越大,对其平均化求得平均值,这样就能解决样本点个数不同带来的影响),由此得到损失函数

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

先假设b=0方便计算:

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

那么在b=0时,最优解函数为:

4多参数回归

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

假设:

那么损失函数为:

需要求当
=?时

loss的最小值

5最小二乘法MSE

1.矩阵相关知识

:一个矩阵的转置的转置等于原矩阵。
:两个矩阵和的转置等于它们各自转置的和。
:一个矩阵乘以一个标量的转置等于该矩阵的转置乘以该标量。
:两个矩阵乘积的转置等于它们各自转置的乘积,但顺序相反。

2.最小二乘法

假设有8个不同属性的x得到一个真实的y值,要求其中对应的w的值,那么对应的目标函数为:

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

对应的损失函数为:

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

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

推导1:
推导2:链式求导
相关推荐
云云3215 小时前
云手机能用来干什么?云手机在跨境电商领域的用途
服务器·线性代数·安全·智能手机·矩阵
云云3215 小时前
云手机方案总结
服务器·线性代数·安全·智能手机·矩阵
IT古董5 小时前
【漫话机器学习系列】019.布里(莱)尔分数(Birer score)
人工智能·深度学习·机器学习
gang_unerry6 小时前
量子退火与机器学习(1):少量数据求解未知QUBO矩阵,以少见多
人工智能·python·算法·机器学习·数学建模·矩阵·量子计算
AI小白白猫7 小时前
20241230 基础数学-线性代数-(1)求解特征值(numpy, scipy)
线性代数·numpy·scipy
视觉&物联智能8 小时前
【杂谈】-为什么Python是AI的首选语言
开发语言·人工智能·python·深度学习·机器学习
IT古董8 小时前
【机器学习】机器学习的基本分类-强化学习-模型预测控制(MPC:Model Predictive Control)
人工智能·机器学习·分类
叶庭云9 小时前
一文理解机器学习中二分类任务的评价指标 AUPRC 和 AUROC
机器学习·二分类·auprc·auroc·定义、原理、优缺点、适用场景
qq_5290252912 小时前
Torch.gather
python·深度学习·机器学习