{"id":8052,"date":"2021-01-11T03:55:57","date_gmt":"2021-01-11T03:55:57","guid":{"rendered":"https:\/\/wealthrevelation.com\/data-science\/2021\/01\/11\/how-catboost-algorithm-works-in-machine-learning\/"},"modified":"2021-01-11T03:55:57","modified_gmt":"2021-01-11T03:55:57","slug":"how-catboost-algorithm-works-in-machine-learning","status":"publish","type":"post","link":"https:\/\/wealthrevelation.com\/data-science\/2021\/01\/11\/how-catboost-algorithm-works-in-machine-learning\/","title":{"rendered":"How CatBoost Algorithm Works In Machine Learning"},"content":{"rendered":"<div id=\"tve_editor\" data-post-id=\"8367\">\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-176c1ad0491\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i1.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/1-Catboost-Algorithm.png?resize=626%2C376&amp;ssl=1\" class=\"tve_image wp-image-8369\" alt=\"Catboost Algorithm\" data-id=\"8369\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"Catboost Algorithm\" loading=\"lazy\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-8369\" alt=\"Catboost Algorithm\" data-id=\"8369\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"Catboost Algorithm\" loading=\"lazy\" src=\"https:\/\/i1.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/1-Catboost-Algorithm.png?resize=626%2C376&amp;ssl=1\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-176c1ad049a\">\n<p dir=\"ltr\">\u00a0 CatBoost is the first Russian <a href=\"https:\/\/dataaspirant.com\/category\/machine-learning-2\/\" target=\"_blank\" rel=\"noopener\"><strong>machine learning algorithm<\/strong><\/a> developed to be open source. The algorithm was developed in the <strong>year 2017<\/strong> by machine learning researchers and engineers at <strong>Yandex<\/strong> (a technology company).<\/p>\n<p dir=\"ltr\">The intention is to serve multi-functional purposes such as<\/p>\n<p dir=\"ltr\">CatBoost algorithm is another member of the <a href=\"https:\/\/dataaspirant.com\/gradient-boosting-algorithm\/\" target=\"_blank\" rel=\"noopener\"><strong>gradient boosting<\/strong><\/a> technique on <a href=\"https:\/\/dataaspirant.com\/how-decision-tree-algorithm-works\/\" target=\"_blank\" rel=\"noopener\"><strong>decision trees<\/strong><\/a>.<\/p>\n<\/div>\n<div class=\"thrv_wrapper thrv_tw_qs tve_clearfix\" data-url=\"https:\/\/twitter.com\/intent\/tweet\" data-via=\"\" data-use_custom_url=\"\" data-css=\"tve-u-176c1ad04d5\">\n<div class=\"thrv_tw_qs_container\">\n<div class=\"thrv_tw_quote\">\n<p class=\"\">Learn the popular CatBoost algorithm in machine learning, along with the implementation. #machinelearning #datascience #catboost #classification #regression #python<\/p>\n<\/p><\/div>\n<p>\n\t\t\t<span><br \/>\n\t\t\t\t<i><\/i><br \/>\n\t\t\t\t<span class=\"thrv_tw_qs_button_text thrv-inline-text tve_editable\">Click to Tweet<\/span><br \/>\n\t\t\t<\/span>\n\t\t<\/p>\n<\/p><\/div>\n<\/div>\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-176c1ad04d6\">\n<p dir=\"ltr\">One of the many unique features that the CatBoost algorithm offers is the integration to work with diverse <strong>data types<\/strong> to solve a wide range of data problems faced by numerous businesses.\u00a0<\/p>\n<p dir=\"ltr\">Not just that, but CatBoost also offers <a href=\"https:\/\/dataaspirant.com\/six-popular-classification-evaluation-metrics-in-machine-learning\/\" target=\"_blank\" rel=\"noopener\"><strong>accuracy<\/strong><\/a> just like the other algorithm in the tree family.<\/p>\n<p dir=\"ltr\">Before we get started, let\u2019s have a look at the topics you are going to learn in this article.<\/p>\n<\/div>\n<h2 id=\"t-1609567161983\" class=\"\">What is CatBoost Algorithm?<\/h2>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-176c1b442e9\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/2-What-is-Catboost-Algorithm.png?resize=626%2C376&amp;ssl=1\" class=\"tve_image wp-image-8379\" alt=\"What is Catboost Algorithm\" data-id=\"8379\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"What is Catboost Algorithm\" loading=\"lazy\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-8379\" alt=\"What is Catboost Algorithm\" data-id=\"8379\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"What is Catboost Algorithm\" loading=\"lazy\" src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/2-What-is-Catboost-Algorithm.png?resize=626%2C376&amp;ssl=1\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element tve-froala fr-box fr-basic\">\n<p dir=\"ltr\">The term CatBoost is an acronym that stands for &#8220;Category\u201d and \u201c<a href=\"https:\/\/dataaspirant.com\/gradient-boosting-algorithm\/\" target=\"_blank\" rel=\"noopener\"><strong>Boosting<\/strong><\/a>.\u201d Does this mean the \u201cCategory\u2019 in CatBoost means it only works for categorical features?<\/p>\n<blockquote class=\"\"><p>The answer is, <strong>\u201cNo.\u201d<\/strong><\/p><\/blockquote>\n<p dir=\"ltr\">According to the CatBoost documentation, CatBoost supports <strong>numerical<\/strong>, <strong>categorical<\/strong>, and <strong>text features<\/strong> but has a good handling technique for categorical data.\u00a0<\/p>\n<p dir=\"ltr\">The CatBoost algorithm has quite a number of <a href=\"https:\/\/dataaspirant.com\/hyperparameter-tuning-with-keras-tuner\/\" target=\"_blank\" class=\"tve-froala\" rel=\"noopener\"><strong>parameters to tune the features<\/strong><\/a> in the processing stage.<\/p>\n<p dir=\"ltr\">&#8220;Boosting&#8221; in CatBoost refers to the <a href=\"https:\/\/dataaspirant.com\/gradient-boosting-algorithm\/\" target=\"_blank\" class=\"tve-froala\" rel=\"noopener\"><strong>gradient boosting machine learning<\/strong><\/a>. Gradient boosting is a machine learning technique for <a href=\"https:\/\/dataaspirant.com\/classification-and-prediction\/\" target=\"_blank\" rel=\"noopener\"><strong>regression and classification<\/strong><\/a> problems.\u00a0<\/p>\n<p dir=\"ltr\">Which produces a prediction model in an ensemble of weak prediction models, typically <a href=\"https:\/\/dataaspirant.com\/decision-tree-algorithm-python-with-scikit-learn\/\" target=\"_blank\" rel=\"noopener\"><strong>decision trees<\/strong><\/a>.\u00a0<\/p>\n<p dir=\"ltr\">Gradient boosting is a robust machine learning algorithm that performs well when used to provide solutions to different types of business problems such as <\/p>\n<p dir=\"ltr\">Again, it can return an outstanding result with relatively <strong>fewer<\/strong> data. Unlike other machine learning algorithms that only perform well after learning from extensive data.<\/p>\n<p dir=\"ltr\">We would suggest you read the article <a href=\"https:\/\/dataaspirant.com\/gradient-boosting-algorithm\/\" target=\"_blank\" class=\"tve-froala\" rel=\"noopener\"><strong>How the gradient boosting algorithms works<\/strong><\/a> if you want to learn more about the gradient boosting algorithms functionality.<\/p>\n<h2 id=\"t-1609567161984\" class=\"\">Features of CatBoost<\/h2>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-176c1b5f10f\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i1.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/3-CatBoost-Algorithm-Features.png?resize=626%2C376&amp;ssl=1\" class=\"tve_image wp-image-8382\" alt=\"CatBoost Algorithm Features\" data-id=\"8382\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"CatBoost Algorithm Features\" loading=\"lazy\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-8382\" alt=\"CatBoost Algorithm Features\" data-id=\"8382\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"CatBoost Algorithm Features\" loading=\"lazy\" src=\"https:\/\/i1.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/3-CatBoost-Algorithm-Features.png?resize=626%2C376&amp;ssl=1\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element tve-froala fr-box fr-basic\">\n<p dir=\"ltr\">Here we would look at the various features the CatBoost algorithm offers and why it stands out.<\/p>\n<h3 id=\"t-1609567161985\" class=\"\">Robust<\/h3>\n<p dir=\"ltr\">CatBoost can improve the <strong>performance<\/strong> of the model while <a href=\"https:\/\/dataaspirant.com\/handle-overfitting-deep-learning-models\/\" target=\"_blank\" class=\"tve-froala\" rel=\"noopener\"><strong>reducing overfitting<\/strong><\/a> and the time spent on tuning. \u00a0<\/p>\n<p dir=\"ltr\">CatBoost has several parameters to tune. Still, it reduces the need for extensive <a href=\"https:\/\/dataaspirant.com\/hyperparameter-tuning-with-keras-tuner\/\" target=\"_blank\" rel=\"noopener\"><strong>hyper-parameter tuning<\/strong><\/a> because the <strong>default parameters<\/strong> produce a great result.<\/p>\n<h3 id=\"t-1609567161986\" class=\"\">Accuracy<\/h3>\n<p dir=\"ltr\">The CatBoost algorithm is a high performance and <strong>greedy novel<\/strong> gradient boosting implementation.\u00a0<\/p>\n<p dir=\"ltr\">Hence, CatBoost (when implemented well) either leads or ties in competitions with standard benchmarks.<\/p>\n<h3 id=\"t-1609567161987\" class=\"\">Categorical Features Support<\/h3>\n<p dir=\"ltr\">The key features of CatBoost is one of the significant reasons why it was selected by many boosting algorithms such as LightGBM, \u00a0<a href=\"https:\/\/dataaspirant.com\/xgboost-algorithm\/\" target=\"_blank\" class=\"tve-froala\" rel=\"noopener\"><strong>XGBoost algorithm<\/strong><\/a> ..etc\u00a0<\/p>\n<p dir=\"ltr\">With other machine learning algorithms. After preprocessing and cleaning your data, the data has to be converted into <strong>numerical features<\/strong> so that the machine can understand and make predictions. <\/p>\n<p dir=\"ltr\">This is same like, for any text related models we convert the text data into to numerical data it is know as <a href=\"https:\/\/dataaspirant.com\/word-embedding-techniques-nlp\/\" target=\"_blank\" rel=\"noopener\"><strong>word embedding techniques<\/strong><\/a>.<\/p>\n<p dir=\"ltr\">This process of encoding or conversion is time-consuming. CatBoost supports working with non-numeric factors, and this saves some time plus improves your training results.<\/p>\n<h3 id=\"t-1609567161988\" class=\"\">Easy Implementation<\/h3>\n<p dir=\"ltr\">CatBoost offers easy-to-use interfaces. The CatBoost algorithm can be used in Python with <a href=\"https:\/\/scikit-learn.org\/stable\/\" target=\"_blank\" rel=\"noopener\"><strong>scikit-learn<\/strong><\/a>, R, and command-line interfaces.<\/p>\n<p dir=\"ltr\">Fast and scalable GPU version: the researchers and machine learning engineers designed CatBoost at Yandex to work on data sets as large as tens of thousands of objects without lagging.\u00a0<\/p>\n<p dir=\"ltr\">Training your model on <strong>GPU<\/strong> gives a better speedup when compared to training the model on CPU.\u00a0<\/p>\n<p dir=\"ltr\">To crown this improvement, the larger the dataset is, the more significant the speedup. CatBoost efficiently supports <strong>multi-card configuration<\/strong>. So, for large datasets, use a multi-card configuration.<\/p>\n<h3 id=\"t-1609567161989\" class=\"\">Faster Training &amp; Predictions<\/h3>\n<p dir=\"ltr\">Before the improvement of servers, the maximum number of GPUs per server is 8 GPUs. Some data sets are more extensive than that, but CatBoost uses distributed GPUs.\u00a0<\/p>\n<p dir=\"ltr\">This feature enables CatBoost to learn faster and make predictions 13-16 times faster than other algorithms.<\/p>\n<h3 id=\"t-1609567161990\" class=\"\">Supporting Community of Users<\/h3>\n<p dir=\"ltr\">The non-availability of a team to contact when you encounter issues with a product you consume can be very annoying. This is not the case for CatBoost.\u00a0<\/p>\n<p dir=\"ltr\">CatBoost has a growing community where the developers lookout for feedbacks and contributions. <\/p>\n<p dir=\"ltr\">There is a Slack community, a Telegram channel (with English and Russian versions), and Stack Overflow support. If you ever discover a bug, there is a page via GitHub for bug reports.<\/p>\n<h2 id=\"t-1609567161991\" class=\"\">Is tuning required in CatBoost?<\/h2>\n<p dir=\"ltr\">The answer is <strong>not straightforward<\/strong> because of the type and features of the dataset. The <strong>default<\/strong> settings of the parameters in CatBoost would do a good job.\u00a0<\/p>\n<p dir=\"ltr\">CatBoost produces good results without extensive <a href=\"https:\/\/dataaspirant.com\/hyperparameter-tuning-with-keras-tuner\/\" target=\"_blank\" rel=\"noopener\"><strong>hyper-parameter tuning<\/strong><\/a>. However, some important parameters can be tuned in CatBoost to get a better result.\u00a0<\/p>\n<p dir=\"ltr\">These features are easy to tune and are well-explained in the CatBoost documentation. Here are some of the parameters that can be optimized for a better result; <\/p>\n<ul class=\"\">\n<li>cat_ features,\u00a0<\/li>\n<li>one_hot_max_size,\u00a0<\/li>\n<li>learning_rate &amp; n_estimators,<\/li>\n<li>max_depth,\u00a0<\/li>\n<li>subsample,\u00a0<\/li>\n<li>colsample_bylevel,\u00a0<\/li>\n<li>colsample_bytree,\u00a0<\/li>\n<li>colsample_bynode,\u00a0<\/li>\n<li>l2_leaf_reg,\u00a0<\/li>\n<li>random_strength.<\/li>\n<\/ul>\n<h2 id=\"t-1609567161992\" class=\"\">CatBoost vs. LightGBM vs. XGBoost Comparison<\/h2>\n<p dir=\"ltr\">These three popular machine learning algorithms are based on gradient boosting techniques. Hence, a greedy and very powerful.\u00a0<\/p>\n<p dir=\"ltr\">Several Kagglers have won a Kaggle competition using one of these accuracy-based algorithms. <\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-176c1b75e7c\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i0.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/4-Boosting-Algorithms-Comparision.png?resize=626%2C376&amp;ssl=1\" class=\"tve_image wp-image-8385\" alt=\"Boosting Algorithms Comparision\" data-id=\"8385\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"Boosting Algorithms Comparision\" loading=\"lazy\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-8385\" alt=\"Boosting Algorithms Comparision\" data-id=\"8385\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"Boosting Algorithms Comparision\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/4-Boosting-Algorithms-Comparision.png?resize=626%2C376&amp;ssl=1\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p dir=\"ltr\">Before we dive into the several differences that these algorithms possess, it should be noted that the CatBoost algorithm does not require the conversion of the data set to any specific format. Precisely numerical format, unlike XGBoost and Light GBM.<\/p>\n<p dir=\"ltr\">The oldest of these three algorithms is the <a href=\"https:\/\/dataaspirant.com\/xgboost-algorithm\/\" target=\"_blank\" rel=\"noopener\"><strong>XGBoost algorithm<\/strong><\/a>. It was introduced sometime in <strong>March 2014<\/strong> by Tianqi Chen, and the model became famous in <strong>2016<\/strong>.\u00a0<\/p>\n<p dir=\"ltr\">Microsoft introduced <strong>lightGBM<\/strong> in January 2017. Then Yandex open sources the CatBoost algorithm later in April 2017.<\/p>\n<p dir=\"ltr\">The algorithms differ from one another in implementing the boosted trees algorithm and their technical compatibilities and limitations.\u00a0<\/p>\n<p dir=\"ltr\">XGBoost was the first to improve GBM&#8217;s training time. Followed by LightGBM and CatBoost, each with its techniques mostly related to the splitting mechanism.<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-176c1b835e2\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/5-Boosting-Algorithms-Characteristics-Comparison.png?resize=626%2C376&amp;ssl=1\" class=\"tve_image wp-image-8387\" alt=\"Boosting Algorithms Characteristics Comparison\" data-id=\"8387\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"Boosting Algorithms Characteristics Comparison\" loading=\"lazy\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-8387\" alt=\"Boosting Algorithms Characteristics Comparison\" data-id=\"8387\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"Boosting Algorithms Characteristics Comparison\" loading=\"lazy\" src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/5-Boosting-Algorithms-Characteristics-Comparison.png?resize=626%2C376&amp;ssl=1\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p dir=\"ltr\">Now we would go through a comparison of the three models using some characteristics.<\/p>\n<h3 id=\"t-1609567161993\" class=\"\">Split<\/h3>\n<p dir=\"ltr\">The split function is a useful technique, and there are different ways of splitting features for these three machine learning algorithms.\u00a0<\/p>\n<p dir=\"ltr\">One right way of splitting features during the processing phase is to inspect the characteristics of the column.<\/p>\n<p dir=\"ltr\">lightGBM uses the <strong>histogram-based<\/strong> split finding and utilizes a gradient-based one-side sampling (GOSS) that reduces complexity through gradients.\u00a0<\/p>\n<p dir=\"ltr\">Small gradients are well trained, which means small training errors, and large gradients are undertrained.\u00a0<\/p>\n<p dir=\"ltr\">In Light GBM, for <strong>GOSS<\/strong> to perform well and to reduce complexity, the focus is on instances with large gradients. While a random sampling technique is implemented on instances with small gradients.<\/p>\n<p dir=\"ltr\">The CatBoost algorithm introduced a unique system called Minimal Variance Sampling (MVS), which is a weighted sampling version of the widely used approach to regularization of boosting models, Stochastic Gradient Boosting.\u00a0\u00a0<\/p>\n<p dir=\"ltr\">Also, Minimal Variance Sampling (MVS) is the new default option for subsampling in CatBoost.<\/p>\n<p dir=\"ltr\">With this technique, the number of examples needed for each iteration of boosting decreases, and the quality of the model improves significantly compared to the other gradient boosting models.\u00a0<\/p>\n<p dir=\"ltr\">The features for each boosting tree are sampled in a way that maximizes the accuracy of split scoring.<\/p>\n<p dir=\"ltr\">In contrast to the two algorithms discussed above, XGBoost <strong>does not<\/strong> utilize any <strong>weighted sampling<\/strong> techniques.\u00a0<\/p>\n<p dir=\"ltr\">This is the reason why the splitting process is slower compared to the GOSS of LightGBM and MVS of CatBoost.<\/p>\n<h3 id=\"t-1609567161994\" class=\"\">Leaf Growth<\/h3>\n<p dir=\"ltr\">A significant change in the implementation of the gradient boosting algorithms such as XGBoost, LightGBM, CatBoost, is the method of tree construction, also called <strong>leaf growth<\/strong>.<\/p>\n<p dir=\"ltr\">The CatBoost algorithm grows a balanced tree. In the tree structure, the feature-split pair is performed to choose a leaf.\u00a0<\/p>\n<p dir=\"ltr\">The split with the smallest penalty is selected for all the level&#8217;s nodes according to the penalty function. This method is repeated level by level until the leaves match the <strong>depth of the tree<\/strong>.\u00a0<\/p>\n<p dir=\"ltr\">By default, CatBoost uses symmetric trees ten times faster and gives better quality than non-symmetric trees. \u00a0<\/p>\n<p dir=\"ltr\">However, in some cases, other tree growing strategies (Lossguide, Depthwise) can provide better results than growing symmetric trees.\u00a0<\/p>\n<p dir=\"ltr\">The parameters that change the tree growing policy include<\/p>\n<ul class=\"\">\n<li>&#8211;grow-policy,<\/li>\n<li>\u00a0&#8211;min-data-in-leaf,\u00a0<\/li>\n<li>&#8211;max-leaves.<\/li>\n<\/ul>\n<p dir=\"ltr\">LightGBM grows the tree leaf-wise (best-first) tree growth. The leaf-wise growth finds the leaves that minimize the loss and split just those leaves without touching the rest (leaves that maximize the loss), allowing an imbalanced tree structure.\u00a0<\/p>\n<p dir=\"ltr\">The leaf-wise growth strategy seems to be an excellent method to achieve a lower loss. This is because it does not grow level-wise, but it often results in overfitting when the data set is small.\u00a0<\/p>\n<p dir=\"ltr\">However, this strategy&#8217;s greed with LightGBM can be regularized using these parameters <\/p>\n<ul class=\"\">\n<li class=\" dir=\">-\u2013num_leaves,\u00a0<\/li>\n<li class=\" dir=\">&#8211;min_data_in_leaf,\u00a0<\/li>\n<li class=\" dir=\">&#8211;max_depth.<\/li>\n<\/ul>\n<p dir=\"ltr\">XGBoost also uses the leaf-wise strategy, just like the LightGBM algorithm. The leaf-wise approach is a good choice for large datasets, which is one reason why <a href=\"https:\/\/dataaspirant.com\/xgboost-algorithm\/\" target=\"_blank\" rel=\"noopener\"><strong>XGBoost performs well<\/strong><\/a>.\u00a0<\/p>\n<p dir=\"ltr\">In XGBoost, the parameter that handles the splits process to reduce overfit is\u00a0<\/p>\n<h3 id=\"t-1609567161995\" class=\"\">Missing Values Handling<\/h3>\n<p dir=\"ltr\">CatBoost supports three modes for processing <\/p>\n<ol>\n<li class=\"\">missing values,\u00a0<\/li>\n<li class=\"\">&#8220;Forbidden,\u201d <\/li>\n<li class=\"\">&#8220;Min,&#8221; and &#8220;Max.\u201d\u00a0<\/li>\n<\/ol>\n<p dir=\"ltr\">For &#8220;Forbidden,\u201d CatBoost treats missing values as not supported.\u00a0<\/p>\n<p dir=\"ltr\">The presence of the missing values is interpreted as errors. For &#8220;Min,\u201d missing values are processed as the minimum value for a feature. <\/p>\n<p dir=\"ltr\">With this method, the split that separates missing values from all other values is considered when selecting splits.\u00a0<\/p>\n<p dir=\"ltr\">&#8220;Max&#8221; works just the same as &#8220;Min,\u201d but the difference is the change from minimum to maximum values.<\/p>\n<p dir=\"ltr\">The method of handling missing values for LightGBM and XGBoost is similar. The missing values will be allocated to the side that reduces the loss in each split.<\/p>\n<h3 id=\"t-1609567161996\" class=\"\">Categorical Features Handling<\/h3>\n<p dir=\"ltr\">CatBoost uses one-hot encoding for handling categorical features. By default, CatBoost uses one-hot encoding for categorical features with a small number of different values in most modes.\u00a0<\/p>\n<p dir=\"ltr\">The number of categories for one-hot encoding can be controlled by the <strong>one_hot_max_size<\/strong> parameter in Python and R.\u00a0<\/p>\n<p dir=\"ltr\">On the other hand, the CatBoost algorithm categorical encoding is known to make the model slower.\u00a0<\/p>\n<p dir=\"ltr\">However, the engineers at Yandex have in the documentation stated that one-hot encoding should not be used during pre-processing because it affects the model\u2019s speed.<\/p>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-176c1ba7935\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/6-Dont-use-one-hot-encoding-in-cateboost.png?resize=626%2C183&amp;ssl=1\" class=\"tve_image wp-image-8390\" alt=\"Dont use one hot encoding in cateboost\" data-id=\"8390\" width=\"626\" data-init-width=\"1570\" height=\"183\" data-init-height=\"458\" title=\"Dont use one hot encoding in cateboost\" loading=\"lazy\" data-width=\"626\" data-height=\"183\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-8390\" alt=\"Dont use one hot encoding in cateboost\" data-id=\"8390\" width=\"626\" data-init-width=\"1570\" height=\"183\" data-init-height=\"458\" title=\"Dont use one hot encoding in cateboost\" loading=\"lazy\" src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/6-Dont-use-one-hot-encoding-in-cateboost.png?resize=626%2C183&amp;ssl=1\" data-width=\"626\" data-height=\"183\" data-recalc-dims=\"1\"><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p dir=\"ltr\">LightGBM uses <strong>integer-encoding<\/strong> for handling the categorical features. This method has been found to perform better than one-hot encoding.\u00a0<\/p>\n<p dir=\"ltr\">The categorical features must be encoded to non-negative integers (an integer that is either positive or zero).\u00a0<\/p>\n<p dir=\"ltr\">The parameter that refers to handling categorical features in LightGBM is categorical_features.<\/p>\n<p dir=\"ltr\">XGBoost was not engineered to handle categorical features. The algorithm supports only numerical features.\u00a0<\/p>\n<p dir=\"ltr\">This, in turn, means that the encoding process would be done manually by the user.<\/p>\n<p dir=\"ltr\">Some manual methods of encoding include label encoding, mean encoding, and one-hot.<\/p>\n<h2 id=\"t-1609567161997\" class=\"\">When and When Not to Use CatBoost<\/h2>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-176c1bb6468\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/7-When-to-use-Catboost-Algorithm.png?resize=626%2C376&amp;ssl=1\" class=\"tve_image wp-image-8393\" alt=\"When to use Catboost Algorithm\" data-id=\"8393\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"When to use Catboost Algorithm\" loading=\"lazy\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-8393\" alt=\"When to use Catboost Algorithm\" data-id=\"8393\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"When to use Catboost Algorithm\" loading=\"lazy\" src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/7-When-to-use-Catboost-Algorithm.png?resize=626%2C376&amp;ssl=1\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p dir=\"ltr\">We have discussed all of the goods of the CatBoost algorithm without addressing the procedure for using it to achieve a better result.\u00a0<\/p>\n<p dir=\"ltr\">In this section, we would look at when CatBoost is sufficient for our data, and when it is not.<\/p>\n<h3 id=\"t-1609567161998\" class=\"\">When To Use CatBoost<\/h3>\n<h4 class=\"\">Short training time on a robust data<\/h4>\n<p dir=\"ltr\">Unlike some other <a href=\"https:\/\/dataaspirant.com\/category\/machine-learning-2\/\" target=\"_blank\" rel=\"noopener\"><strong>machine learning algorithms<\/strong><\/a>, CatBoost performs well with a small data set.\u00a0<\/p>\n<p dir=\"ltr\">However, it is advisable to be mindful of <a href=\"https:\/\/dataaspirant.com\/handle-overfitting-deep-learning-models\/\" target=\"_blank\" rel=\"noopener\"><strong>overfitting<\/strong><\/a>. A little tweak to the parameters might be needed here.<\/p>\n<h4 class=\"\">Working on a small data set<\/h4>\n<p dir=\"ltr\">This is one of the significant strengths of the CatBoost algorithm. Suppose your data set has categorical features, and converting it to numerical format seems to be quite a lot of work. <\/p>\n<p dir=\"ltr\">In that case, you can capitalize on the strength of CatBoost to make the process of building your model easy.<\/p>\n<h4 class=\"\">When you are working on a categorical dataset<\/h4>\n<p dir=\"ltr\">CatBoost is incredibly faster than many other machine learning algorithms. The splitting, tree structure, and training process are <a href=\"https:\/\/dataaspirant.com\/optimization-algorithms-deep-learning\/\" target=\"_blank\" rel=\"noopener\"><strong>optimized<\/strong><\/a> to be faster on GPU and CPU.\u00a0<\/p>\n<p dir=\"ltr\">Training on GPU is 40 times faster than on CPU, two times faster than LightGBM, and 20 times faster than XGBoost.<\/p>\n<h3 id=\"t-1609567161999\" class=\"\">When To Not Use CatBoost<\/h3>\n<p dir=\"ltr\" id=\"t-1609567162000\">There are not many disadvantages of using CatBoost for whatever data set.\u00a0<\/p>\n<p dir=\"ltr\" id=\"t-1609567162001\">So far, the hassle why many do not consider using CatBoost is because of the slight difficulty in tuning the parameters to optimize the model for categorical features.<\/p>\n<h2 id=\"t-1609567162002\" class=\"\">Practical Implementation of CatBoost Algorithm in Python<\/h2>\n<\/div>\n<div class=\"thrv_wrapper tve_image_caption\" data-css=\"tve-u-176c1bca4fb\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i0.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/8-Catboost-Algorithm-Python-Implementation.png?resize=626%2C376&amp;ssl=1\" class=\"tve_image wp-image-8398\" alt=\"Catboost Algorithm Python Implementation\" data-id=\"8398\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"Catboost Algorithm Python Implementation\" loading=\"lazy\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-8398\" alt=\"Catboost Algorithm Python Implementation\" data-id=\"8398\" width=\"626\" data-init-width=\"750\" height=\"376\" data-init-height=\"450\" title=\"Catboost Algorithm Python Implementation\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/dataaspirant.com\/wp-content\/uploads\/2021\/01\/8-Catboost-Algorithm-Python-Implementation.png?resize=626%2C376&amp;ssl=1\" data-width=\"626\" data-height=\"376\" data-recalc-dims=\"1\"><\/span><\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p dir=\"ltr\">CatBoost Algorithm Overview in Python 3.x<\/p>\n<p dir=\"ltr\"><strong>Pipeline: <\/strong><\/p>\n<ol>\n<li>Import the libraries\/modules needed<\/li>\n<li>Import data<\/li>\n<li>Data cleaning and preprocessing<\/li>\n<li>Train-test split<\/li>\n<li>CatBoost training and prediction<\/li>\n<li>Model Evaluation<\/li>\n<\/ol>\n<p>Before we build the cat boost model, Let&#8217;s have<\/p>\n<\/div>\n<div class=\"thrv_wrapper thrv_table tcb-fixed tcb-mobile-table\" data-ct-name=\"Blue Background 02\" data-ct=\"table-39183\" data-element-name=\"Table\" data-css=\"tve-u-176c1bfdf4f\">\n<table data-rows=\"12\" data-cols=\"2\" class=\"tve_table tcb-fixed tve_table_flat\" data-css=\"tve-u-176c1bfdf50\">\n<thead data-css=\"tve-u-176c1bfdf51\">\n<tr class=\"tve_table_row\">\n<th class=\"tve_table_cell\" data-css=\"tve-u-176c1bfdf52\">\n<h4 class=\"\"><strong>Feature<\/strong><\/h4>\n<\/th>\n<th class=\"tve_table_cell\">\n<h4 class=\"\"><strong>Description<\/strong><\/h4>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody data-css=\"tve-u-176c1bfdf58\">\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1bfdf59\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1bfdf5c\">\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-176c1bfdf5a\">\n<p data-css=\"tve-u-176c1bfdf5d\">Passenger Class (1 = 1st; 2 = 2nd; 3 = 3rd)<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1bfdf60\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1bfdf61\">\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-176c1bfdf5a\">\n<p data-css=\"tve-u-176c1bfdf5d\">Survival (0 = No; 1 = Yes)<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1bfdf64\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1bfdf65\"><\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1c4ce37\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1c4cf27\"><\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1c4ce3a\" rowspan=\"1\" colspan=\"1\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1c4cf2a\" rowspan=\"1\" colspan=\"1\"><\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1c4ce3d\" rowspan=\"1\" colspan=\"1\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1c4cf2d\" rowspan=\"1\" colspan=\"1\">\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-176c1bfdf5a\">\n<p data-css=\"tve-u-176c1bfdf5b\">Number of Siblings\/Spouses Aboard<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1c4ce3f\" rowspan=\"1\" colspan=\"1\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1c4cf2f\" rowspan=\"1\" colspan=\"1\">\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-176c1bfdf5a\">\n<p data-css=\"tve-u-176c1bfdf5b\">Number of Parents\/Children Aboard<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1c4ce42\" rowspan=\"1\" colspan=\"1\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1c4cf32\" rowspan=\"1\" colspan=\"1\"><\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1c4ce44\" rowspan=\"1\" colspan=\"1\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1c4cf34\" rowspan=\"1\" colspan=\"1\">\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-176c1bfdf5a\">\n<p data-css=\"tve-u-176c1bfdf5b\">Passenger Fare (British pound)<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1c4ce46\" rowspan=\"1\" colspan=\"1\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1c4cf36\" rowspan=\"1\" colspan=\"1\"><\/td>\n<\/tr>\n<tr class=\"tve_table_row\">\n<td class=\"tve_table_cell\" data-th=\"Feature\" data-css=\"tve-u-176c1bfdf68\" rowspan=\"1\" colspan=\"1\"><\/td>\n<td class=\"tve_table_cell\" data-th=\"Description\" data-css=\"tve-u-176c1bfdf69\" rowspan=\"1\" colspan=\"1\">\n<div class=\"thrv_wrapper thrv_text_element\" data-css=\"tve-u-176c1bfdf5a\">\n<p data-css=\"tve-u-176c1bfdf5b\">Port of Embarkation (C = Cherbourg; Q = Queenstown; S = Southampton)<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<p>Before we implement the CatBoost, we need to <strong>install<\/strong> the the catboost library.<\/p>\n<ul class=\"\">\n<li>Command: <strong>pip install catboost<\/strong><\/li>\n<\/ul>\n<\/div>\n<div class=\"thrv_wrapper thrv_text_element tve-froala fr-box fr-basic\">\n<p>You can get the complete code in our <strong><a href=\"https:\/\/github.com\/saimadhu-polamuri\/DataAspirant_codes\/tree\/master\/catboost_algorithm\" target=\"_blank\" class=\"tve-froala\" rel=\"noopener\">Github account<\/a>.<\/strong> For you reference we have included the notebook please scroll the complete IPython notebook.<\/p>\n<\/div>\n<div class=\"thrv_wrapper thrv_text_element\">\n<h2 class=\"\" id=\"t-1609607072783\">Conclusion<\/h2>\n<p dir=\"ltr\">In this article, we have discussed and shed light on the CatBoost algorithm.\u00a0<\/p>\n<p dir=\"ltr\">The CatBoost algorithm is excellent and is also dominating as the algorithm is used by many because of the features it offers, most especially handling categorical features.<\/p>\n<p dir=\"ltr\">This article covered an introduction to the CatBoost algorithm, the unique features of CatBoost, the difference between CatBoost, LightGBM, and XGBoost.\u00a0<\/p>\n<p dir=\"ltr\">Also, we covered the answer to if <a href=\"https:\/\/dataaspirant.com\/hyperparameter-tuning-with-keras-tuner\/\" target=\"_blank\" rel=\"noopener\"><strong>hyper-parameter tuning<\/strong><\/a> is required for CatBoost and an introduction to CatBoost in Python.<\/p>\n<\/div>\n<h4 class=\"\">Recommended Machine Learning Courses<\/h4>\n<div class=\"thrv_wrapper thrv-page-section thrv-lp-block\" data-inherit-lp-settings=\"1\" data-css=\"tve-u-176c1ad0390\" data-keep-css_id=\"1\">\n<div class=\"tve-page-section-in tve_empty_dropzone  \" data-css=\"tve-u-17481b960b8\">\n<div class=\"thrv_wrapper thrv-columns dynamic-group-kbt3q0q7\" data-css=\"tve-u-17481b95e2b\">\n<div class=\"tcb-flex-row v-2 tcb--cols--3 tcb-medium-no-wrap tcb-mobile-wrap m-edit\" data-css=\"tve-u-176c1ad0391\">\n<div class=\"tcb-flex-col\">\n<div class=\"tcb-col dynamic-group-kbt3pyfd\" data-css=\"tve-u-17481b95e2d\">\n<div class=\"thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad dynamic-group-kbt3pwhk\" data-css=\"tve-u-176c1ad03a8\">\n<div class=\"tve-cb\">\n<div class=\"thrv_wrapper tve_image_caption dynamic-group-kbt3pu4z\" data-css=\"tve-u-176c1ad03ab\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i0.wp.com\/dataaspirant.com\/wp-content\/uploads\/2020\/08\/deeplearning-course.jpg?resize=178%2C178&amp;ssl=1\" class=\"tve_image wp-image-5170\" alt=\"Deep Learning python\" data-id=\"5170\" width=\"178\" data-init-width=\"150\" height=\"178\" data-init-height=\"150\" title=\"deeplearning-course\" loading=\"lazy\" data-width=\"178\" data-height=\"178\" data-css=\"tve-u-176c1ad03ac\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-5170\" alt=\"Deep Learning python\" data-id=\"5170\" width=\"178\" data-init-width=\"150\" height=\"178\" data-init-height=\"150\" title=\"deeplearning-course\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/dataaspirant.com\/wp-content\/uploads\/2020\/08\/deeplearning-course.jpg?resize=178%2C178&amp;ssl=1\" data-width=\"178\" data-height=\"178\" data-css=\"tve-u-176c1ad03ac\" data-recalc-dims=\"1\"><span class=\"tve-image-overlay\"><\/span><\/span><\/div>\n<h4 class=\"\" data-css=\"tve-u-176c1ad0393\">Machine Learning A to Z Course<\/h4>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"tcb-flex-col\">\n<div class=\"tcb-col dynamic-group-kbt3pyfd\" data-css=\"tve-u-17481b95e2d\">\n<div class=\"thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad dynamic-group-kbt3pwhk\" data-css=\"tve-u-176c1ad03a9\">\n<div class=\"tve-cb\">\n<div class=\"thrv_wrapper tve_image_caption dynamic-group-kbt3pu4z\" data-css=\"tve-u-176c1ad03b7\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i0.wp.com\/dataaspirant.com\/wp-content\/uploads\/2020\/10\/Deep-learning-for-computer-vision2.png.jpeg?resize=178%2C178&amp;ssl=1\" class=\"tve_image wp-image-6739\" alt=\"Deep-learning-for-computer-vision2.png\" data-id=\"6739\" width=\"178\" data-init-width=\"150\" height=\"178\" data-init-height=\"150\" title=\"Deep-learning-for-computer-vision2.png\" loading=\"lazy\" data-width=\"178\" data-height=\"178\" data-css=\"tve-u-176c1ad03b8\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-6739\" alt=\"Deep-learning-for-computer-vision2.png\" data-id=\"6739\" width=\"178\" data-init-width=\"150\" height=\"178\" data-init-height=\"150\" title=\"Deep-learning-for-computer-vision2.png\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/dataaspirant.com\/wp-content\/uploads\/2020\/10\/Deep-learning-for-computer-vision2.png.jpeg?resize=178%2C178&amp;ssl=1\" data-width=\"178\" data-height=\"178\" data-css=\"tve-u-176c1ad03b8\" data-recalc-dims=\"1\"><span class=\"tve-image-overlay\"><\/span><\/span><\/div>\n<h4 class=\"\" data-css=\"tve-u-176c1ad039a\">Python Data Science Specialization Course<\/h4>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"tcb-flex-col\">\n<div class=\"tcb-col dynamic-group-kbt3pyfd\" data-css=\"tve-u-17481b95e2d\">\n<div class=\"thrv_wrapper thrv_contentbox_shortcode thrv-content-box tve-elem-default-pad dynamic-group-kbt3pwhk\" data-css=\"tve-u-176c1ad03aa\">\n<div class=\"tve-cb\">\n<div class=\"thrv_wrapper tve_image_caption dynamic-group-kbt3pu4z\" data-css=\"tve-u-176c1ad03b9\"><span class=\"tve_image_frame\"><img src=\"https:\/\/i2.wp.com\/dataaspirant.com\/wp-content\/plugins\/lazy-load\/images\/1x1.trans.gif?ssl=1\" data-lazy-src=\"https:\/\/i1.wp.com\/dataaspirant.com\/wp-content\/uploads\/2017\/05\/datacamp_logo.png?resize=178%2C178&amp;ssl=1\" class=\"tve_image wp-image-3123\" alt data-id=\"3123\" width=\"178\" data-init-width=\"150\" height=\"178\" data-init-height=\"150\" title=\"datacamp_logo\" loading=\"lazy\" data-width=\"178\" data-height=\"178\" data-css=\"tve-u-176c1ad03ba\" data-recalc-dims=\"1\"><img class=\"tve_image wp-image-3123\" alt=\"\" data-id=\"3123\" width=\"178\" data-init-width=\"150\" height=\"178\" data-init-height=\"150\" title=\"datacamp_logo\" loading=\"lazy\" src=\"https:\/\/i1.wp.com\/dataaspirant.com\/wp-content\/uploads\/2017\/05\/datacamp_logo.png?resize=178%2C178&amp;ssl=1\" data-width=\"178\" data-height=\"178\" data-css=\"tve-u-176c1ad03ba\" data-recalc-dims=\"1\"><span class=\"tve-image-overlay\"><\/span><\/span><\/div>\n<h4 class=\"\" data-css=\"tve-u-176c1ad03a1\">Complete Supervised Learning Algorithms<\/h4>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>https:\/\/dataaspirant.com\/catboost-algorithm\/<\/p>\n","protected":false},"author":0,"featured_media":8053,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/wealthrevelation.com\/data-science\/wp-json\/wp\/v2\/posts\/8052"}],"collection":[{"href":"https:\/\/wealthrevelation.com\/data-science\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wealthrevelation.com\/data-science\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/wealthrevelation.com\/data-science\/wp-json\/wp\/v2\/comments?post=8052"}],"version-history":[{"count":0,"href":"https:\/\/wealthrevelation.com\/data-science\/wp-json\/wp\/v2\/posts\/8052\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wealthrevelation.com\/data-science\/wp-json\/wp\/v2\/media\/8053"}],"wp:attachment":[{"href":"https:\/\/wealthrevelation.com\/data-science\/wp-json\/wp\/v2\/media?parent=8052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wealthrevelation.com\/data-science\/wp-json\/wp\/v2\/categories?post=8052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wealthrevelation.com\/data-science\/wp-json\/wp\/v2\/tags?post=8052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}