Python DeepForest模型-初步运行

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")

学习链接:

猜你喜欢

转载自blog.csdn.net/weixin_45913084/article/details/129614492