2021-09-02

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
06-03

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值