0、简介
深度森林: 将决策树和深度学习结合起来,具有比深度神经网络少得多的超参数,并且其模型复杂性可以以数据依赖的方式自动确定。可用于分类和回归。
1、安装
pip install deep-forest
2、加载数据
# Deep forest 要求输入的数据是2D Numpy array
# 数据shape格式(n_samples, n_features)
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
X, y = load_digits(return_X_y=True)
# 训练数据在前,测试数据在后
X_train, X_test, y_train, y_test = train_test_split(X, y)
3、模型定义
Deep forest 模型提供分类和回归两种模型
分类模型:CascadeForestClassifier
回归模型:CascadeForestRegressor
# 深度森林的一个关键优势是其依赖于数据集的自适应模型复杂性。
# 超参数的默认设置使其能够在所有数据集上表现得相当好。
from deepforest import CascadeForestClassifier
model = CascadeForestClassifier()
4、训练和评价
# Deep forest提供Scikit-Learn用于训练和评价的APIs
# 给出训练数据X_train和标签数据y_train
model.fit(X_train, y_train)
# 一旦模型训练完成,调用predict()进行模型预测
from sklearn.metrics import accuracy_score
y_pred = model.predict(X_test)
acc = accuracy_score(y_test, y_pred) * 100 # classification accuracy
5、保存和加载
# 保存模型
model.save(MODEL_DIR) # MODEL_DIR:保存模型的路径
new_model = CascadeForestClassifier()
new_model.load(MODEL_DIR) # 加载现有模型
# 注意:new_model和model不完全相同,只有model的关键信息被保存
6、例子
# 分类的例子
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from deepforest import CascadeForestClassifier
# Load data
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y)
model = CascadeForestClassifier()
# Train and evaluate
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
acc = accuracy_score(y_test, y_pred) * 100
print("\nTesting Accuracy: {:.3f} %".format(acc))
# Save the model
model.save("model")
学习链接: