Entrepreneurial Geekiness

Ian is a London-based independent Senior Data Scientist who coaches teams, teaches and creates data products. More about Ian here.
Entrepreneurial Geekiness
Ian is a London-based independent Senior Data Scientist who coaches teams, teaches and creates data product.
Coaching
Training
Jobs
Products
Consulting

“Creating correct and capable classifiers” at PyDataAmsterdam 2018

This weekend I got to attend PyDataAmsterdam 2018 – this is my first trip to the Netherlands (Yay! It is lovely here). The conference grew on last year to 345 attendees with over 20% female speakers.

In addition to attending some lovely talks I also got to run another “Making your first open source contribution” session, with James Powell and a couple of people in 30 minutes we fixed some typos in Nick Radcliffe’s tdda project to improve his overview documentation. I’m happy to have introduced a couple of new people to the idea that a “contribution” can start with a 1 word typo-fix or adding notes to an existing bug report, without diving into the possibly harder world of making a code contribution.

We also had Segii along as our NumFOCUS representative (and Marci Garcia of the Pandas Sprints has done this before too). If you want to contribute to the community you might consider talking to NumFOCUS about how to be an ambassador at a future conference.

I gave an updated talk on my earlier presentation for PyDataLondon 2018, this time I spoke more on :

  • YellowBrick‘s ROC curves
  • SHAPley machine learning explanations
  • Along with my earlier ideas on diagnosis using Pandas and T-SNE

I had a lovely room, wide enough that I only got a third of my audience in the shot below:

My audience at PyDataAmsterdam 2018

I’ve updated some of the material from my London talk, particularly I’ve added a few slides on SHAPley debugging approaches to contrast against ELI5 that I used before. I’ll keep pushing this notion that we need to be debugging our ML models so we can explain why they work to colleagues (if we can’t – doesn’t that mean we just don’t understand the black box?).

Checking afterwards it is lovely to get supportive feedback, thank you Ondrej and Tobias:

Here are the slides (the code has been added to my data_science_delivered github repo):

I’m really happy with the growth of our international community (we’re up to 100 PyData meetups now!). As usual we had 5 minute lightning talks at the close of the conference. I introduced the nbdime Notebook diff tool.

I’m also very pleased to say that I’ve had a lot of people come up to say Thanks after the talk. This is no doubt because I now highlight the amount of work done by volunteer conference organisers and volunteer speakers (almost everyone involved in running a PyData conference is an unpaid volunteer – organisers and speakers alike). We need to continue making it clear that contributing back to the open source ecosystem is essential, rather than just consuming from it. James and I gave a lightning talk on this right at the end.

Update – I’m very happy to see this tweet about how James’ and my little talk inspired Christian to land a PR. I’m also very happy to see this exchange with Ivo about potentially mentoring newer community members. I wonder where this all leads?


Ian applies Data Science as an AI/Data Scientist for companies in ModelInsight and in his Mor Consulting, sign-up for Data Science tutorials in London. He also founded the image and text annotation API Annotate.io, lives in London and is a consumer of fine coffees.
Read More

PyDataLondon 2018 and “Creating Correct and Capable Classifiers”

This weekend we ran PyDataLondon 2018, the fifth iteration of our conference (connected with our monthly PyDataLondon meetup). This year we grew to 500 attendees! Read about the past PyDataLondon 2017 here.

Updatesvideos are online, reportedly we raised £91,000 towards open source support for NumFOCUS via ticket sales & sponsorship (all the London team are unpaid volunteers, this money goes back to NumFOCUS to support the PyData ecosystem).

Here’s a summary of what we covered with 500 attendees over 3 days:

On Thursday morning I co-ran a “Make your first open source contribution” with Nick (of PyDataEdinburgh). We had a group who’d rarely (or never) made a contribution to github. We managed to commit a couple of minor doc fixes, recreated a bug in ELI5 and subsequently a new (failing) test was submitted to the project. Great success! I’m interested in another bug if you want to make a contribution.

Each room was packed with 150-200 people (with a comfy number of chairs for everyone!):

One of our key NumFOCUS organisers is Leah Silen, she’s an unsung hero who makes every conference come together. She broke her foot recently and couldn’t fly over. It turns out the crowd rather misses her and all of her work. Get well soon!

At the conference I spoke on “Creating Correct and Capable Classifiers” (worked Notebook in my github repo, full video online). We took a look at starting with a baseline model, building a better stable model, visualising errors, diagnosing where it might be failing and explaining the end results to a colleague.

Many thanks to @matti of PyDataBerlin for taking a lovely photo of our speaker-duck gift for speakers:

Many thanks also to all of our volunteers and to the staff at the Tower Hotel – thanks for making the weekend so much fun 🙂


Ian applies Data Science as an AI/Data Scientist for companies in ModelInsight and in his Mor Consulting, sign-up for Data Science tutorials in London. He also founded the image and text annotation API Annotate.io, lives in London and is a consumer of fine coffees.
Read More

AHL Python Data Hackathon

Yesterday I got to attend Man AHL’s first London Python Data hackathon (21-22 April – photos online). I went with the goal of publishing my ipython_memory_usage tool from GitHub to PyPI (success!), updating the docs (success!) and starting to work on the YellowBrick project (partial-success).

This is AHL’s first crack at running a public Python hackathon – from my perspective it went flawlessly. They use Python internally and they’ve been hosting my PyDataLondon meetup for a couple of years (and, all going well, for years to come), they support the Python ecosystem with public open source contributions and this hackathon was another method for them to contribute back. This is lovely (since so many companies aren’t so good at contributing and only consume from open source) and should be encouraged.

Here’s Bernd of AHL introducing the hackathon. We had 85 or so folk (10% women) in the room:

Bernd introducing Python Data hackathon at AHL

I (and 10 or so others) then introduced our projects. I was very happy to have 6 new contributors volunteer to my project. I introduced the goals, got everyone up to speed and then we split the work to fix the docs and to publish to the test PyPI server and then finally to the official PyPI public server.

This took around 3 hours, most of the team had some knowledge of a git workflow but none had seen my project before. With luck one of my colleagues will post a conda-forge recipe soon too. Here’s my team in action (photo taken by AHL’s own CTO Gary Collier):

Team at AHL hackathon

Many thanks to Hetal, Takuma, Robin, Lucija, Preyesh and Pav.

Robin had recently published his own project to PyPI so he had some handy links. Specifically we used twine and these notes. In addition the Pandas Sprint guide was useful for things like pulling the upstream master between our collaborative efforts (along with Robin’s notes).

This took about 3 hours. Next we had a crack at the sklearn-visualiser YellowBrick – first to get it running and tested and then to fix the docs on a recent code contribution I’d made (making a sklearn-compatible wrapper for statsmodels’ GLM) with some success. It turns out that we might need to work on the “get the tests” running process, they didn’t work well for a couple of us – this alone will make for a nice contribution once we’ve fixed it.

Overall this effort helped 6 people contribute to two new projects, where 5 of the collaborators had only some prior experience (as best I remember!) with making an open source contribution. I’m very happy with our output – thanks everyone!


Ian applies Data Science as an AI/Data Scientist for companies in ModelInsight and in his Mor Consulting, sign-up for Data Science tutorials in London. He also founded the image and text annotation API Annotate.io, lives in London and is a consumer of fine coffees.
Read More

PyData Conference & AHL Hackathon

Our 5th annual PyDataLondon conference will run this April 27-29th, this year we grow from 330 to 500 attendees. As before this remains a volunteer-run conference (with support from the lovely core NumFOCUS team), just as the monthly meetup is a volunteer-run event.

The Call for Proposals is open until the start of March (you have 2 weeks!) – first time speakers are keenly sought. Our mentorship programme is in full swing to help new speakers craft a good proposal, before it hits the (volunteer run) review committee. As usual we expect 2-3 submissions per speaking slot so the competition to speak at PyDataLondon will remain high. We also have a set of diversity grants to support those who might otherwise not attend the conference – don’t be afraid to apply to use a grant.

Tickets are on sale already, this year’s programme will go live towards the end of March. If you’d like a taste of what goes on at a PyDataLondon conference see my write-up from 2017and see the 2017 schedule.

The week before the conference our generous meetup hosts AHL are holding a Python Data Science Hackathon. You should definitely apply if you’re anywhere near London (I have!). They have budget to fly in some core developers – if your project hasn’t yet applied and you’re interested in being involved with a large open-source science hackathon, please do visit their site and apply. Here you have a chance to make a strong contribution to the open source tools that we all use.

Finally – if you’re interested in learning about the jobs that are going in the UK Python Data Science world, take a look at my data science jobs list. 7-10 jobs get emailed out every 2 weeks to over 900 people and people are successfully getting new jobs via this list.


Ian applies Data Science as an AI/Data Scientist for companies in ModelInsight and in his Mor Consulting, sign-up for Data Science tutorials in London. He also founded the image and text annotation API Annotate.io, lives in London and is a consumer of fine coffees.
Read More

Python Data Science jobs list into 2018

I’ve been building my data-science jobs list for a couple of years now. Almost 800 folk are on the list, they receive an email update once every two weeks containing around seven job ads. Many active members of PyDataLondon are on the list.

The ads are mostly London-based, a few spread into Europe. In addition to the jobs I’ve added a “book of the month” and “video of the month” recommendation along with an open source project that is after contributions from the community. If a selection of jobs and educational recommendations every couple of weeks feel like a useful addition to your inbox – join the mailchimp list here. Your email is never revealed, you’re in control, you can unsubscribe at any time.

“I’m very grateful for Ian’s job list as it enabled me to find a DS job in an interesting and meaningful domain, and furthermore connected me with likeminded folk. Strongly recommend.” – Frank Kelly, Senior Data Scientist @HAL24K

Companies who have advertised include AHL (our host for PyDataLondon), BBC, Channel 4, QBE Insurance, Willis Towers Watson, UCL and Cambridge Universities, HAL24K, Just Eat, Oxbotica, SkyScanner and many more. Roles range from junior to head-of-dept for data science and data engineering, most are permanent roles, some are contract roles.

“After placing a contract ad on this list I was contacted by a number of high quality and enthusiastic data scientists, who all proposed innovative and exciting solutions to my research problem, and were able to explain their proposals clearly to a non-specialist; the quality of responses was so high that I was presented with a real dilemma in choosing who to work with”. – Hazel Wilkinson, Cambridge University

Anyone can post to the list, PyDataLondon members get to make a first post to the list gratis (I take the time cost as a part of my usual activity of community-building in London). All posts come via me to check that they’re suitable, they go out every two weeks for three iterations. Contact me directly (ian.ozsvald at modelinsight dot io) if you’re interested in making a post.


Ian applies Data Science as an AI/Data Scientist for companies in ModelInsight and in his Mor Consulting, sign-up for Data Science tutorials in London. He also founded the image and text annotation API Annotate.io, lives in London and is a consumer of fine coffees.
Read More

Warning: Use of undefined constant NONCE_SALT - assumed 'NONCE_SALT' (this will throw an Error in a future version of PHP) in /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/platform/cache.php on line 267

Warning: Use of undefined constant NONCE_SALT - assumed 'NONCE_SALT' (this will throw an Error in a future version of PHP) in /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/platform/cache.php on line 267

Warning: Use of undefined constant NONCE_SALT - assumed 'NONCE_SALT' (this will throw an Error in a future version of PHP) in /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/platform/cache.php on line 267

Fatal error: Uncaught Error: Class 'JchOptimize\JSON_Optimize' not found in /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/jchoptimize/libs/HTML_Optimize.php:270 Stack trace: #0 /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/jchoptimize/libs/HTML_Optimize.php(239): JchOptimize\HTML_Optimize->_callMinifier(Array, '{"@context":"ht...') #1 [internal function]: JchOptimize\HTML_Optimize->_minifyCB(Array) #2 /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/jchoptimize/libs/Optimize.php(104): preg_replace_callback('#(?><?[^<]*+(?:...', Array, '<!DOCTYPE html>...') #3 /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/jchoptimize/libs/HTML_Optimize.php(129): JchOptimize\Optimize->_replace('#(?><?[^<]*+(?:...', '', '<!DOCTYPE html>...', '3', Array) #4 /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/jchoptimize/libs/HTML_Optimize.php(59): JchOptimize\HTML_Optimize->_optimize() #5 /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/jchoptimize in /home/ianozsvald/webapps/htdocs/wp-content/plugins/jch-optimize/jchoptimize/libs/HTML_Optimize.php on line 270