catboost

2020“东方国信杯”高校大数据开发大赛最终榜第三名思路分享

独自空忆成欢 提交于 2020-07-24 05:19:34
2020“东方国信杯”高校大数据开发大赛最终榜第三名思路分享 2020“东方国信杯”高校大数据开发大赛刚刚结束,我所在的队伍“三人运动团”最后取得了 3/453 这个还算不错的成绩。感谢两位大佬队友的一路相伴!!下面我将分享一下我们本次比赛的一点思路! 写在前面:大家好!我是练习时长半年的在读本科生数据小白JerryX,各位数据挖掘大佬有什么问题和建议多多指教!!欢迎大家多多点赞,多多评论,多多批评指正!! 目录 2020“东方国信杯”高校大数据开发大赛最终榜第三名思路分享 0 赛题背景 1 特征工程 2 模型策略 3 结论&展望 0 赛题背景 随着信息化浪潮的发展, 我们即将迎来5G时代的浪潮,而中国也是5G通信时代的引领者 。 去年十月, 三大电信运营商共同宣布5G商用服务启动,发布相应的5G套餐 ,席卷全球的5G浪潮正式走进中国的千家万户。 5G使云服务进一步往边缘发展 ,越来越多的边缘算力将促进基于边缘计算的AI应用,更低的网络延时, 也使得终端和云对AI计算的分工更为灵活。无人驾驶、智能家居、工业物联将快速发展。 而 对于通信运营商来说,如何基于 一些用户侧的信息进行用户画像, 再进一步对于潜在的5G使用者进行精准的推销也是非常有帮助的 。 而这个也正是本次东方国信杯的比赛目标。 本次竞赛提供已经转向5G的用户以及尚未转向5G用户的各种数据,要求通过建模识别5G潜在用户

Boosting算法的前世今生(下篇)

主宰稳场 提交于 2020-04-24 23:26:44
微信公众号: AIKaggle 欢迎建议和拍砖,若需要资源,请公众号留言; 如果你觉得AIKaggle对你有帮助,欢迎赞赏 Boosting算法的前世今生(下篇) [TOC] 本系列文章将会梳理Boosting算法的发展,介绍Boosting算法族的原理,框架,推导等,Boosting算法的前世今生(上篇)介绍了AdaBoost算法和梯度提升树算法,中篇详细介绍了陈天奇教主提出的XGBoost算法,下篇(本文)将会介绍LightGBM算法,CATBoost算法。LightGBM算法由Microsoft Research提出,主打梯度提升算法的轻量级实现,他的两个创新点在于基于单边梯度的采样算法(GOSS)和互斥系数特征合并(EFB)。而CatBoost是由俄罗斯Yandex公司提出的,他嵌入了自动将类别特征处理为数值型特征的创新型算法,并且使用完全对称树作为基模型。如果对机器学习算法和实战案例感兴趣,也可关注公众号:AIKaggle获取算法动态 引言 传统的boosting算法(如GBDT和XGBoost)已经有相当好的效率,但是在如今的大样本和高维度的环境下,传统的boosting似乎在效率和可扩展性上不能满足现在的需求了,主要的原因就是传统的boosting算法需要对每一个特征都要扫描所有的样本点来选择最好的切分点,这是非常的耗时。 LightGBM 的提出

11种离散型变量编码方式及效果对比

早过忘川 提交于 2020-04-18 13:34:22
首先介绍一个关于离散型编码的Python库,里面封装了十几种(包括文中的所有方法)对于离散型特征的编码方法,接口接近于Sklearn通用接口,非常实用。下面是这个库的链接: Category Encoders 1. Label Encoder / Ordered Encoder 这个编码方式非常容易理解,就是把所有的相同类别的特征编码成同一个值,例如女=0,男=1,狗狗=2,所以最后编码的特征值是在[0, n-1]之间的整数。 这个编码的缺点在于它随机的给特征排序了,会给这个特征增加不存在的顺序关系,也就是增加了噪声。假设预测的目标是购买力,那么真实Label的排序显然是 女 > 狗狗 > 男,与我们编码后特征的顺序不存在相关性。 2. OneHot Encoder / Dummy Encoder / OHE 大家熟知的OneHot方法就避免了对特征排序的缺点。对于一列有N种取值的特征,Onehot方法会创建出对应的N列特征,其中每列代表该样本是否为该特征的某一种取值。因为生成的每一列有值的都是1,所以这个方法起名为Onehot特征。Dummy特征也是一样,只是少了一列,因为第N列可以看做是前N-1列的线性组合。但是在离散特征的特征值过多的时候不宜使用,因为会导致生成特征的数量太多且过于稀疏。 3. Sum Encoder (Deviation Encoder, Effect

矩池云 | 使用LightGBM来预测分子属性

末鹿安然 提交于 2020-03-27 09:36:18
3 月,跳不动了?>>> 今天给大家介绍提升方法(Boosting), 提升算法是一种可以用来减小监督式学习中偏差的机器学习算法。 面对的问题是迈可·肯斯(Michael Kearns)提出的:一组“弱学习者”的集合能否生成一个“强学习者”? 弱学习者一般是指一个分类器,它的结果只比随机分类好一点点。强学习者指分类器的结果非常接近真值。 大多数提升算法包括由迭代使用弱学习分类器组成,并将其结果加入一个最终的成强学习分类器。加入的过程中,通常根据它们的分类准确率给予不同的权重。加和弱学习者之后,数据通常会被重新加权,来强化对之前分类错误数据点的分类。 提升算法有种三个臭皮匠顶个诸葛亮的意思。在这里将使用微软的LightGBM这个提升算法,来预测分子的一个属性,叫做耦合常数。 导入需要的库 import os import time import datetime import json import gc from numba import jit import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline from tqdm import tqdm_notebook from sklearn.preprocessing import StandardScaler

Print CatBoost hyperparameters

主宰稳场 提交于 2019-12-24 07:56:49
问题 How to print CatBoost hyperparameters after training a model? In sklearn we can just print model object that it will show all parameters but in catboost it only print object's reference: <catboost.core.CatBoostRegressor object at 0x7fd441e5f6d8> . from catboost import CatBoostRegressor # Initialize data train_data = [[1, 4, 5, 6], [4, 5, 6, 7], [30, 40, 50, 60]] eval_data = [[2, 4, 6, 8], [1, 4, 50, 60]] train_labels = [10, 20, 30] # Initialize CatBoostRegressor model = CatBoostRegressor

Bayesian Optimisation applied in CatBoost

巧了我就是萌 提交于 2019-12-23 22:25:05
问题 This is my attempt at applying BayesSearch in CatBoost: from catboost import CatBoostClassifier from skopt import BayesSearchCV from sklearn.model_selection import StratifiedKFold # Classifier bayes_cv_tuner = BayesSearchCV( estimator = CatBoostClassifier( silent=True ), search_spaces = { 'depth':(2,16), 'l2_leaf_reg':(1, 500), 'bagging_temperature':(1e-9, 1000, 'log-uniform'), 'border_count':(1,255), 'rsm':(0.01, 1.0, 'uniform'), 'random_strength':(1e-9, 10, 'log-uniform'), 'scale_pos_weight

How to install Yandex CatBoost on Anaconda x64?

会有一股神秘感。 提交于 2019-12-12 10:39:13
问题 I'v successfully installed CatBoost via pip install catboost But I'v got errors, when I tried sample python script in Jupiter Notebook import numpy as np from catboost import CatBoostClassifier ImportError: No module named '_catboost' ImportError: DLL load failed: Не найден указанный модуль. Link to CatBoost site: https://catboost.yandex/ 回答1: If you use python 3.5, pip maybe download not right version of wheel. Instead of catboost-0.1.1.2-py3-none-win_amd64.whl you need catboost-0.1.1.2-cp35

An Typeerror with VotingClassifier

久未见 提交于 2019-12-01 14:31:43
I want to use VotingClassifier, but I have some problems with cross validating x_train, x_validation, y_train, y_validation = train_test_split(x, y, test_size=.22, random_state=2) x_train = x_train.fillna(0) clf1 = CatBoostClassifier() clf2 = RandomForestClassifier() clf = VotingClassifier(estimators=[('cb', clf1), ('rf', clf2)]) clf.fit(x_train.values(), y_train) soooo, I have an error with predicting... cross_validate(clf, x_train, y_train, scoring='accuracy', return_train_score = True, n_jobs = 4) TypeError: Cannot cast array data from dtype('float64') to dtype('int64') according to the

An Typeerror with VotingClassifier

喜你入骨 提交于 2019-12-01 13:37:26
问题 I want to use VotingClassifier, but I have some problems with cross validating x_train, x_validation, y_train, y_validation = train_test_split(x, y, test_size=.22, random_state=2) x_train = x_train.fillna(0) clf1 = CatBoostClassifier() clf2 = RandomForestClassifier() clf = VotingClassifier(estimators=[('cb', clf1), ('rf', clf2)]) clf.fit(x_train.values(), y_train) soooo, I have an error with predicting... cross_validate(clf, x_train, y_train, scoring='accuracy', return_train_score = True, n