赞
踩
随机森林就是多棵决策树在一起组成的森林,就是多个决策树执行民主决策的过程
随机森林算法的优点:
- 对于很多种资料,可以产生高准确度的分类器
- 可以处理大量的输入变量
- 可以在决定类别时,评估变量的重要性
- 在建造森林时,可以在内部对于一般化后的误差产生不偏差的估计
- 包含一个好方法可以估计丢失的资料,并且如果有很大一部分的资料丢失,仍可以维持准确度
- 对于不平衡的分类资料集来说,可以平衡误差
- 可被延伸应用在未标记的资料上,这类资料通常是使用非监督式聚类,也可侦测偏离者和观看资料
- 学习过程很快速
随机森林算法的缺点:
- 牺牲了决策树的可解释性
- 在某些噪音较大的分类或回归问题上会过拟合
- 在多个分类变量的问题中,随机森林可能无法提高基学习器的准确性
随机森林分类模型:
from sklearn.ensemble import RandomForestClassifier
随机森林回归模型:
from sklearn.ensemble import RandomForestRegressor
train_test_split()
datasets.load_iris()是sklearn中内置的鸾尾花数据集
- iris = datasets.load_iris() #datasets.load_iris()是sklearn中内置的鸾尾花数据集
- #print(iris)
- X = iris.data[:, [2, 3]] #表示从鸢尾花数据集中选取所有行、第三列第四列的数据。[2:3]才不包括3,是左闭右开. [2,3]是第三列和第四列,是闭区间
- y = iris.target
随机森林回归模型:
随机森林回归模型(RandomForestRegressor)的常用参数:
- # 导入必要的库和数据集:
-
- from sklearn.ensemble import RandomForestRegressor
- from sklearn.model_selection import train_test_split
- from sklearn.metrics import mean_squared_error
- from sklearn.datasets import load_iris
-
- # 导入数据集
- #x, y = load_data() # 加载自己的数据集
- iris = load_iris()
- x = iris.data
- y = iris.target
-
- # 划分训练集和测试集
- x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
-
- # 创建随机森林回归模型并进行训练:
-
- # 创建随机森林回归模型
- rf_regressor = RandomForestRegressor(n_estimators=100, random_state=42)
-
- # 训练模型
- rf_regressor.fit(x_train, y_train)
-
- # 进行预测并评估模型:
-
- # 进行预测
- y_pred = rf_regressor.predict(x_test)
- print(y_pred)
-
- # 计算均方误差(Mean Squared Error)
- mse = mean_squared_error(y_test, y_pred)
- print(mse)
-
- #计算得分
- score=rf_regressor.score(x_test,y_test)
- print(score)
随机森林分类模型:
- from sklearn.ensemble import RandomForestClassifier
- from sklearn.datasets import load_iris
- from sklearn.model_selection import train_test_split
- from sklearn.metrics import accuracy_score
-
- # 加载鸢尾花数据集
- iris = load_iris()
- x = iris.data
- y = iris.target
-
- # 划分训练集和测试集
- x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
-
- # 训练随机森林模型
- clf = RandomForestClassifier(n_estimators=100, random_state=42) #n_estimators是森林中树的数量默认100,,random_state是随机数种子
- clf.fit(x_train, y_train)
-
- # 预测测试集
- y_pred = clf.predict(x_test)
- print(y_pred)
-
- # 计算准确率
- accuracy = accuracy_score(y_test, y_pred)
- print("Accuracy:", accuracy)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。