Solutions to “Just KNIME It!” Challenge 25 - Season 2

:boom: New Wednesday, new Just KNIME It! challenge! :boom:

:stethoscope: This week we will once again dive into the digital healthcare realm to discuss an important topic in machine learning: hyperparameter optimization! :face_with_monocle: How well can an XGBoost classifier perform in the detection of heart disease? It’s all in the parameter values! :nerd_face:

Here is the challenge. Let’s use this thread to post our solutions to it, which should be uploaded to your public KNIME Hub spaces with tag JKISeason2-25.

:sos: Need help with tags? To add tag JKISeason2-25 to your workflow, go to the description panel in KNIME Analytics Platform, click the pencil to edit it, and you will see the option for adding tags right there. :slight_smile: Let us know if you have any problems!

My first “challenge accepted” response.
C25_Detecting the Presence of Heart Disease Workflow

Uses a parameter optimisation loop on eta (i.e. learning rate), boosting rounds, max depth tree.
Search Strategy = Random Search. No early stopping becuase I wanted to see it’s better than early stopping.

F1 score (i.e. F-measure) was created as an average of F1 scores for class 0 & 1. i.e. Macro F-measure (source)


Hello everyone, this is my solution.

1.The overall structure is divided into two steps. The first step is hyperparameter search, and the second step is to apply the optimized parameters to the model.The model and score are packaged as a component, as this similar calculation was used in both the first and second steps.

2.The hyperparameter search strategy uses the TPE method, mainly to control the number of iterations. Additionally, it seems that this is currently a popular strategy.

3.The Object of hyperparameter optimization is also chosen for Macro F1.


my try on the challenge… low accuracy though .


Here’s my solution. Read the description.


Hi all,
This is my solution.
I don’t think test data should be used to optimize hyperparameters.


Hello everyone,
Here’s my solution. I wasn’t familiar with the typical range of hyperparameters, so I conducted a preliminary hyperperameter search over a wide range before cross validation. However this approach comes with a high computational cost. Thanks.


Hi, KNIMEr :partying_face: :partying_face: :partying_face:

There’s not much to say about this challenge, but maybe you’d like to see my first (failed) experience with the KNIME AI Assistant?


Hello everyone,

Here is my solution. Here I also used F1 macro score (thank you @tomljh for this hint). However I could find this score is not scattered that much, so it is easy to find a good combination of parameters without testing out big ranges of them.

I cannot help adding conformal predictions to my solution, so I also did a significance level optimization and created a component that helps here.


:sparkles: As always on Tuesdays, here’s our solution to last week’s Just KNIME It! challenge :sparkles:

:mag_right: So many different approaches to the problem this week! Very interesting… :eyes: As you can see, our solution heavily relies on the Parameter Optimization (Table) component. Have you heard of it before?

:fire: See you tomorrow for a new challenge! :fire:


Hi KNIMErs :slight_smile:

This week I have split the data into training (70%) and test (30%) sets and used the training set to perform a 5-fold cross validation using the -X-Partitioner- node. The -Parameter Optimization Loop- nodes have been used inside the cross validation loop to determine the optimal parameters (Number of Boosting Rounds, Max Tree Depth, and Learning Rate) for the -XGBoost Tree Ensemble Learner- node, with the Objective Function set as the F-Measure.

After obtaining the optimal parameters for each of the cross validations, the best set of parameters was selected to train a final XGBoost model on the full training set and the model was used to predict the test set.

The average F-Measure for the prediction on the test set was 0.87, using the following parameters:
Number of Boosting Rounds = 21
Max Tree Depth = 3
Learning Rate = 0.2

You can find my workflow on the hub here:

Thanks to @aworker for your guidance :slight_smile:

Best wishes


Sorry for being late, my dear colleagues. Perhaps I got carried away with the fame of the COTM. :rofl: :rofl: :rofl: :rofl:

Based on the workflows of my friends, I have developed a solution that incorporates their suggestions.

Happy no coding!! :person_raising_hand: :kissing_closed_eyes: