Catboost回归系列之二
Python 包安装好后,使用下面例子开始
CatBoostRegressor实例
引用
import numpy as np
from catboost import Pool, CatBoostRegressor
生成数据,分别生成训练集,测试集
train_data = np.random.randint(0,100,size=(100, 10))
train_label = np.random.randint(0,1000,size=(100)
test_data = np.random.randint(0,100,size=(50, 10))
可以看下,生成的数据是啥样的。
train_data[:10]
array([[86, 99, 49, 34, 82, 49, 90, 12, 18, 48],
[52, 29, 17, 21, 76, 42, 39, 3, 93, 91],
[51, 2, 87, 79, 50, 36, 4, 27, 76, 68],
[59, 70, 47, 33, 86, 10, 60, 60, 58, 61],
[58, 58, 18, 83, 51, 4, 75, 36, 79, 73],
[98, 10, 45, 49, 71, 47, 81, 77, 84, 61],
[40, 81, 86, 65, 81, 7, 37, 61, 7, 36],
[ 5, 93, 22, 83, 85, 90, 50, 10, 65, 18],
[25, 51, 22, 3, 28, 53, 76, 36, 65, 95],
[24, 99, 23, 10, 69, 83, 88, 34, 60, 38]])
再看下数据集样式。
train_data.shape
(100, 10)
说明生成是100行,10列的数据集。
生成池
train_pool = Pool(train_data,train_label,cat_features=[0,2,5])
test_pool = Pool(test_data,cat_features=[0,2,5])
确定训练参数,或者说是建立模型结构
model = CatBoostRegressor(iterations=2,
depth=2,
learning_rate=1,
loss_function='RMSE')
训练模型
model.fit(train_pool)
训练结论显示:
0: learn: 258.6675167 total: 56.1ms remaining: 56.1ms
1: learn: 252.7418425 total: 58.9ms remaining: 0us
<catboost.core.CatBoostRegressor at 0x1ed6266b4f0>
利用训练好的模型进行预测,并显示出来。
preds = model.predict(test_pool)
print(preds)
运行结果:
[471.88087228 402.61296736 350.43547284 571.42171603 350.43547284
471.88087228 551.93692786 471.88087228 471.88087228 471.88087228
471.88087228 471.88087228 640.68962095 471.88087228 350.43547284
471.88087228 551.93692786 402.61296736 551.93692786 350.43547284
551.93692786 571.42171603 430.49152842 358.87056984 551.93692786
350.43547284 471.88087228 482.66902294 551.93692786 358.87056984
350.43547284 358.87056984 482.66902294 471.88087228 482.66902294
571.42171603 471.88087228 471.88087228 482.66902294 402.61296736
471.88087228 551.93692786 358.87056984 402.61296736 289.60266492
471.88087228 402.61296736 482.66902294 482.66902294 471.88087228]
结论
本节给出了CatBoost回归的一个相对完整的例子,运到了Pool结构数据。
当然也可不指定是分类还是回归,而是由Catboost自已本身根据数据进行判断。
参考:
https://catboost.ai/docs/concepts/python-quickstart.html