Talk: Machine Learning as extreme TDD

Mar 7, 2019   #haskell  #gender 

I gave a talk last evening at a meetup at Navis giving a soft introduction to machine learning for an audience of mostly developers and QA engineers. I’m sharing the slide deck and also some corrections of mistakes I did in the talk.

Click ml-as-tdd.pdf to download the PDF of the slide deck. The PDF has all the animation build stages as separate slides, so you can step through. I also showed some code towards the end of the talk which I’ll add here.

I want to note a categorical error I did in the talk, especially given that I highlighted ethical considerations such as inclusivity as important to account for early on in an ML project.

I’d referred some datasets of Indian names which also captured their known gender as “male” or “female” … and simply went with that.1 I’d used type declarations of the form -

data Gender = Male | Female

The categorical error there is that “male” and “female” are labels for the sex of a person whereas “man”, “woman”, “transgender” etc. are labels for the gender of a person. The difference is that “male” and “female” are associated with biological traits wheres “man” and “woman” are about how one sees oneself. For example, it is possible and ok for a person to be physically “male”, but identify themselves as a “woman” … or vice versa.

In accordance with that, the slides I’ve uploaded use “Man” and “Woman” instead of “Male” and “Female” because it better represents whether the person will agree with them being referred to using a “Mr.” or “Ms.” title.

The moral of the story is that even when we’re aware of these issues, we can’t afford to lay down our guards when working with common materials.

TODO: Add code shown in the talk.


  1. These repositories are noted in the reference section of the PDF. ↩︎