python-机器学习-随机森林算法

这篇博客主要介绍Python中的随机森林算法,它是基于决策树的集成学习方法。文章结合之前讲解的决策树算法,详细阐述了随机森林的工作原理,并提供了实际代码演示和运行结果。
摘要由CSDN通过智能技术生成

python-机器学习-随机森林算法
本文是用python学习机器学习系列的第五篇
随机森林算法是在决策树算法的基础上的改进,本文使用的基础决策树算法是引用第二篇文章中实现的决策数算法。
链接:python-机器学习-决策树算法
代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn import preprocessing
import re
from collections import defaultdict
from sklearn.model_selection import train_test_split
import DecisionTree as de

# 随机森林
class RandomForest:

   # 初始化
    def __init__(self, criterion='gini', max_depth=10, max_tree=20, random_sample=0.5):
        self.max_depth = max_depth  # 最大树深
        self.criterion = criterion  # 生成模式 ID3 或 ID4.5 或 gini
        self.max_tree = max_tree  # 最大生成树数
        self.random_sample = random_sample  # 随机样本比例
        self.forest = []  # 森林

    # 拟合函数
    def fit(self, x, y):
        data = np.hstack((x, y))
        for i in range(self.max_tree):
            ranData = self.randomSample(data)
            x2 = ranData[:, :-1]
            y2 = ranData[:, -1]
            model = de.DecisionTree(
                criterion=self.criterion, max_depth=self.max_depth)
            model.fit(x2, y2.reshape(len(y2), 1))
            self.forest.append(model)
        return self

    # 预测多个样本
    def predict(self, x):
        return np.array([self.hat(i) for i in x])

    # 预测单个样本
    def hat(self, x):
        result 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值