训练随机森林分类器

随机森林,,每棵树 接收的样本是 随机的,有放回随机抽样,每个节点分裂时特征随机 # 参数方面,可以设置 每个节点的特征数,

有放回抽样还是无放回抽样

# 训练随机森林分类器
from sklearn.ensemble import RandomForestClassifier
from sklearn import datasets

iris = datasets.load_iris()
features = iris.data
target = iris.target

randomforest = RandomForestClassifier(random_state=0)
model = randomforest.fit(features, target)
# 随机森林,,每棵树 接收的样本是 随机的,有放回随机抽样,每个节点分裂时特征随机
# 参数方面,可以设置 每个节点的特征数, 有放回抽样还是无放回抽样
#randomforest_entropy = RandomForestClassifier(criterion='entropy', random_state=0)
#model_entropy = randomforest_entropy.fit(features, target)
# 创建新样本
observation = [[ 5, 4, 3, 2]]
model.predict(observation)
array([1])
Discussion
A common problem with decision trees is that they tend to fit the training data too closely (i.e. overfitting). This has motivated the widespread use of an ensemble learning method called random forest. In a random forest, many decision trees are trained, but each tree only recieves a bootstrapped sample of observations (i.e. a random sample of observations with replacement that matches the original number of observations) and each node only considers a subset of features when determining the best split. The forest of randomized decision trees votes to determin the predicted class