机器学习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_t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值