sklearn之随机森林

重要参数

1.控制基评估器的参数
criterion 不纯度的衡量指标,有基尼系数和信息熵两种选择
max_depth 树的最大深度,超过最大深度的树枝都会被剪掉 左
min_samples_leaf 一个节点在分枝后的每个子节点都必须包含至少min_samples_leaf个训练本,否则分枝就不会发生 左
min_samples_split 一个节点必须要包含至少min_samples_split个训练样本这个节点才允许被分枝,否则分枝就不会发生 左
max_features 限制分枝时考虑的特征个数,超过限制个数的特征都会被舍弃,默认值为总特征个数开平方取整 左右
min_impurity_decrease 限制信息增益的大小,信息增益小于设定数值的分枝不会发生
2.n_estimators
这是森林中树木的数量,即基评估器的数量。这个参数对随机森林模型的精确性影响是单调的,n_estimators越大,模型的效果往往越好。但是相应的,任何模型都有决策边界,n_estimators达到一定的程度之后,随机森林的精确性往往不在上升或开始波动
3.random_state
设置之后每次生成的森林都一样,每棵树的random_state也固定了
4.bootstrap
bootstrap参数默认True,代表采用有放回的随机抽样技术,通常不会被设置为false
5.oob_score
假设有n个样本,抽取n次,每一个样本被抽到的概率1-(1-1/n)**n
当n足够大时,这个概率收敛于1-(1/e),约等于0.632。因此,会有约37%的训练数据被浪费掉,没有参与建模,这些数据被称为袋外数据(out of bag data,简写为oob)。除了我们最开始就划分好的测试集之外,这些数据也可以被用来作为集成算法的测试集。也就是说,在使用随机森林时,我们可以不划分测试集和训练集,只需要用袋外数据来测试我们的模型即可。当然,这也不是绝对的,当n和n_estimators都不够大的时候,很可能就没有数据掉落在袋外,自然也就无法使用oob数据来测试模型了。
如果希望用袋外数据来测试,则需要在实例化时就将oob_score这个参数调整为True

重要属性

1.estimators_
随机森林的重要属性之一:estimators,查看森林中树的状况,
rfc.estimators_[i].random_state 第i课树的random_state参数
2.oob_score_
来查看我们的在袋外数据上测试的结果
rfc.oob_score_

重要接口

1.apply
返回索引
2.fit
训练模型
3.predict
预测模型
4.score
模型得分,分类返回准确度accuracy,回归默认返回R方,我们一般设置为‘负均方误差’ neg_mean_squared_error
5.predict_proba
每个测试样本对应的被分到每一类标签的概率,标签有几个分类就返回几个概率

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV , cross_val_score

data = load_breast_cancer()
print(data.data.shape, data.target.shape)   # (569,30) (569,)

# 建模
# 分类树scoring默认accuracy 回归树默认R方
rfc = RandomForestClassifier(n_estimators=100,random_state=90)
score_pre = cross_val_score(rfc,data.data,data.target,cv=10,scoring='accuracy').mean()
print(score_pre)    # 0.9666925935528475

# n_estimators选择
scorel <
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
scikit-learn(sklearn)是一个常用的机器学习库,它提供了丰富的算法和工具来进行数据预处理、特征选择、模型训练和评估等任务。随机森林sklearn中的一个强大的分类算法,可以用于图像分类任务。 要使用sklearn实现随机森林图像分类,首先需要准备好图像数据和对应的标签。然后,按照以下步骤进行操作: 1. 导入所需的库和模块: ```python from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score ``` 2. 加载图像数据和标签,并进行预处理: ```python # 加载图像数据和标签 # ... # 将图像数据转换为一维向量 # ... # 进行特征缩放或其他预处理操作 # ... ``` 3. 划分训练集和测试集: ```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ``` 其中,X_train和y_train是训练集的图像数据和标签,X_test和y_test是测试集的图像数据和标签。 4. 创建随机森林分类器并进行训练: ```python rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42) rf_classifier.fit(X_train, y_train) ``` 其中,n_estimators是指随机森林中决策树的数量,可以根据实际情况进行调整。 5. 进行预测并评估模型性能: ```python y_pred = rf_classifier.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) ``` 其中,y_pred是模型对测试集的预测结果,accuracy是模型的准确率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值