How to pose a non-trivial ML task for students?

As I am working in teaching, I would like to provide my students a (basic) machine learning classification challenge in the next semester. I really like the idea of giving them a challenge on an unseen dataset and awarding the team with the highest performance - similar like the challenges on Kaggle.

But unfortunately, it turns out that is quite hard to find a dataset that has not some (or even a lot) of finished python-scripts or notebooks publically available. This would somehow make the challenge trivial since it is not. For sure, I could use a set with published solution but change the task, but a large part of the solutions (preprocessing...) could be reused without even think about.

What I want to achieve is to make the students "think" about the problem with all aspects (preprocessing, feature selection, network architecture, metrics...) and not to copy & paste.

EDIT: I already browsed UCI, but it turns out that almost all datasets are represented on kaggle with a solution

So my question is: How to find a suitable ML-dataset that has not tons of solution out there?

Actually, scikit-learn has a build in make_classification where you can tune the amount of noise, classes etc. to create your own dataset

Then it's just up to you, to wrap the data in what ever story you like.

• thanks - this is a way to go, but has of course no real-world relation that would be a nice thing. Aug 4 at 16:42
• That is true - but unless you can get some data from either a closed place or from some in private, it'll be difficult not finding a suitable dataset that's not on Kaggle Aug 4 at 16:58
• @CutePoison "difficult not finding a suitable dataset that's not on Kaggle" -- is there an extra "not" there? Aug 5 at 6:40
• Yeah - correct. There should be only one Aug 5 at 7:30

When I taught ML a while ago I had a bit of fun making my own toy datasets. You only need some creativity to see some real (yet "useless") data in your daily activities or hobbies.

For example I recorded a video of me playing a videogame (Grim Dawn) in both a desert area and a dungeon area, plus some loading screens added as "noise", and downsampled the frames into a tabular data, providing a viable dataset for clustering. I also remember getting some Pokémon data to find relationships between certains stats and types.

If you want real "real" data, chances are someone already worked on it, if the dataset is already prepared to apply ML on. Building these toy datasets with this mix with synthetic-yet-real data is what I found the most appealing. And since you're building the dataset yourself, you will know if it's learning-ready or not, and chances are it already is because the process should be simplistic to avoid using too much time.

I mentioned two examples with videogames, but you surely can find some spreadsheets made by hobbysts¹ or yourself! about car or PC specs, music genres, sports, or whatever else you feel like researching about in the moment.

¹ remember to ask for permission