Articles

Build Strong Connections

I wanted to share with you a web app that I've written to help me stay in touch with people I've met throughout the years. I'm calling it Build Strong Connections. I hope you check it out and give me feedback (positive and negative) on if/how it can help you and how I can make it better.

Analyzing Themes in Reviews with Natural Language Processing (NLP)

Recently I was working on analyzing some short texts and came up with an idea for extracting interesting themes from them. I thought the technique might be particularly useful for app/product reviews. Many businesses are interested in analyzing sentiment but this goes beyond that and tries to analyze recurring themes automatically.

Finding Similar Text with Machine Learning and Natural Language Processing

I've been working with a client on analyzing some text documents and wanted to share a bit of what has been working for us. I can't share the data or the exact project details but it entails, finding similar text documents from a large collection of other documents a specific query example. Imagine searching a database of company statements, product descriptions, articles, contracts, emails, support/trouble tickets, etc. not by keyword but by 'meaning' and 'similarity'.

Building a Micro-Service in Rust and Python

Recently I needed to develop a small microservice to continuously collect, process and alert on a stream of information. Ideally it would require very little memory, be CPU efficient and have consistent performance. I'd always been interested in Rust and have written my fair share of 'toy' apps and this seemed like a great way to learn more with a 'realistic' project.

I've created LetsMeetThen.com - Let me know your thoughts.

I love finding other people with a common interest and discussing a topic at many different levels. You can learn a lot from those with more experience and you can learn even more by explaining something and answering questions you never even thought of asking yourself. That has led me to run several different meetups in the various places I've lived. I always found it rewarding to meet folks in my community in person. But as much as I enjoyed that, those meetups had a few drawbacks

Helping your Community with Data Science

I'm a data scientist (machine learning engineer) and would like to use my skills to help others in my community. I'd also really like to help others help others. So I'm starting a project to bring together volunteer data scientists, engineers and students with non-profits and organizations to find opportunities to do good in their own communities.

Quantifying Uncertainty in the Bitcoin Stock To Flow Model

In this article we look at Plan B (aka 100trillionusd)'s article 'Modeling Bitcoin's Value with Scarcity' through a probabilistic lens. I'm not advocating for or against the applicability of the model and others have discussed its validity. Here, we only try to get a better understanding of the uncertainty of the predictions.

Predicting the Bitcoin Halvening - With Probabilities

Many people following Bitcoin have been discussing the upcoming *halvening* and are interested in when it may occur for financial, curiosity and various other reasons. At the very least you might want to throw a party with other Bitcoin enthusiasts and need to know when to schedule it. In this article we look at different ways to get a handle on when it might happen.

Analyzing Features Associated with Churn

Customer churn, the percentage of customers that stop using your product or service in a particular time period, can quickly become disastrous to your revenue. Acquiring new customers is more costly than keeping existing ones and even a reasonable sounding churn rate can result in a leaky bucket that is impossible to fill.

Measuring Image Similarity with Neural Nets

Automatically finding similar and duplicate images can be very useful as a quick way to show similar products or items from a collection of images. For example, I was shopping for a phone case and the online store had many many interesting designs but they were hard to navigate. Once I found a case that I _kind of_ liked I wanted to see other similar cases to find one that I _really_ liked. Unfortunately they only showed other popular cases that were not at all similar to the one I was considering.

An Introduction to Machine Learning Interpretability

Lately there has been a lot of interest in explainable AI/ML. Nobody wants to feel discriminated against by an algorithm and when we don't like its prediction or decision we want to know why it made that decision. Plus there is an added sense of security when we feel we understand (or could understand) how something works.

Tuning a Text Classification Algorithm

In previous articles we worked through basic approaches for text classification by presenting a simplified version of a problem posed by a client and examining the performance of several algorithms. In this article we improve (slightly) the performance of one of the algorithms with a grid and random hyper parameter optimization search.

TensorFlow for JavaScript for ClojureScript

Among the many announcements at the TensorFlow Dev Summit was the announcement of 'TensorFlow for JavaScript' and I of course wanted to play with that ... from ClojureScript. These are the steps I took to get a simple polynomial regression example working in cljs. I created a re-frame template app but that's not important. I just needed a place to keep the code and I liked having a button to press to fire the function.

Text Classification with Scikit-Learn

In this article we talk about using the next simplest approach which TF-IDF with basic classifiers from Scikit-Learn (sklearn). We show that with minimal processing and no parameter tuning at all we get the impressive accuracy.

Text Classification with IBM Watson

Recently I had a request from a client for help classifying short pieces of text. The exact nature of the text is confidential but the passages were similar to paragraphs from reviews and comments users write about products and services. We wanted a quick and easy way to establish a baseline we could use to compare various approaches. This would help us decide, based on performance and expected necessary investment, if further efforts in research, development and operations were necessary.

AI and ML Unconference

We're hosting an unconference March 24, 2018 in Portland, Oregon focused on finding ways to use AI to improve the lives of everyone in the Community.

About the ACA Bot

The ACA Bot is a very early version of a chatbot that tries to answer some basic questions related to the Affordable Care Act.

Deep Learning for Core ML

These are the slides for a talk I gave to the Portland CocoaHeads user group. It is an intro to deep learning with Core ML in mind. The talk covers a lot of ground and introduced many concepts which I hope led attendees to where they can learn more. There were many great questions on understandability, data bias, managing training, online training and what exactly the DNNs are doing.

Intro to ClojureScript (CLJS) for PDX Node

These are the slides for a recent talk I gave at PDX Node on ClojureScript and why one might consider using a transpiled language.

Machine Learning on Mobile

There is a lot of hype around Artificial Intelligence (AI) and Machine Learning (ML). Its been called *'the new electricity'* and many believe it will fundamentally change our lives as much as the internet and the industrial revolution.

Intro To Deep Learning with Clojure

This is the code for a talk I gave to the Clojure PDX meetup group on 'Intro to Deep Learning w/ Clojure' using ThinkTopic/cortex. The talk examined the question "Given that Python dominates ML/DL; Is there a valid use case for Clojure?"

How to Run a Successful Mastermind Group

Working on a business or new project can be lonely. Your family and friends support your efforts, but they don’t really understand the details of what you are trying to do or what exactly you are going through. Projects are difficult and the long hours can make you feel isolated, frustrated or overwhelmed - but don’t let that kill your morale or progress.

Clojure Web Development

Many people are interested in learning Clojure and ClojureScript and using it for web development. Luckily we have the book "Web Development with Clojure - Build Bulletproof Web Apps with Less Code" by Dmitri Sotnikov.

Building a Single Page App with ClojureScript, Reagent and Friends

Notes from a ClojureScript workshop for the Portland ClojureScript meetup group. We used CLJS, Reagent, Figwheel, re-frame to build a simple working single page app to discuss related concepts.

Random Forests At Scale

These are slides and code from a workshop in Portland on using random forests at scale with Python, Apache Spark and H20.

Intro to Programming Games with Clojure

This 2 hour workshop will give you an introduction and overview to programming, programming with Clojure and developing simple games. We will start with an existing game template and then make changes and see the effects in real time. Then we will talk about how simple 2D games are structured and introduce more technical game and programming concepts and aspects. And then work on making more changes and customizations.

9 Ways To Monetize Your IOS App

This is a beginner's guide to monetizing your iPhone App. Writing this article has helped me clarify my thinking, and hopefully it will stimulate you with ideas that you will share so that we all benefit.