# Introducing Familiar, a quantified reasoning assistant (feedback sought!)

_tl;dr: I'm making a thing that uses probabilistic graphical models to assist in drawing inferences from personal data. You should [c](https://github.com/jferg/familiar)__[heck it out](https://github.com/jferg/familiar), and share with me your wisdom/user experience._

I had this [not-completely-original idea](https://forum.quantifiedself.com/thread-data-analysis-software) that there should be some kind of tool for easily performing statistical inference on Quantified Self-style data.

There are a lot of QS apps out there, but for the most part they seem to be designed for 1. a [single](https://play.google.com/store/apps/details?id=je.fit&hl=en) [domain](https://play.google.com/store/apps/details?id=com.period.tracker.lite) and/or 2. recording things primarily to [combat akrasia](https://www.beeminder.com/) or (more often) sating curiosity/as a lifestyle accessory, rather than actively helping you discover correlations or determine causality between things-you-do and things-you-care-about. [Quantified Mind](http://www.quantified-mind.com/) stands out as a counterexample, but I can't come up with many others in that vein.

There are also [commercial products](http://www.norsys.com/netica.html) and [programming languages](http://en.wikipedia.org/wiki/R_(programming_language)) that allow one to use machine learning to perform inference on data, but they mostly seem to be proprietary and expensive software aimed at businesses, or free but intended to be used by scientists, engineers, etc.; nothing I've yet to find is really suitable for an individual without a background in statistics/machine learning who just wants to learn what they can by smashing together their [Moodscope](https://www.moodscope.com/) and their [FitBit](http://www.fitbit.com/).

In our era of FOSS, APIs, QS, and ML, this seems like a seriously lacking state of affairs. Hence, [**Familiar**](https://github.com/jferg/familiar).

Currently, it consists of a command line interface for storing variable definitions and data in a local database without too much fuss, building a [naive Bayes classifier](http://en.wikipedia.org/wiki/Naive_bayes_classifier) on those variables, and finding [maximum likelihood estimates](http://en.wikipedia.org/wiki/Maximum_likelihood) given the state of one variable for the states of all the other variables. This is unsophisticated and not extremely user-friendly, but those things will change in the near future. In the case where I keep working on this for a very long time, I want to automate away as much recording as possible (including things like [mood and productivity](http://research.microsoft.com/apps/pubs/default.aspx?id=163348)), record everything with the highest reasonable time resolution, plug into every other app out there that might provide useful data, use more complex machine learning algorithms to identify causality and generate suggestions for personal experimentation, and generally have a piece of software that knows you so well it can help you think more like an ideal Bayesian reasoner and thereby assist you in living your life (thus [the](http://dictionary.reference.com/browse/familiarity) [name](http://en.wikipedia.org/wiki/Familiar_spirit)). [Manfred Macx's glasses from _Accelerando_](http://www.warrenellis.com/?p=13972) have something like this inside them, and _I want it too_.

Anyway, back to the present. You can help me by answering whichever of these questions applies to you the most:

*   Would you use something like this at all, or do you think the potential for extracting useful information out of messy personal data is too low?
*   If you might use something like this, but don't want to use Familiar in its current state, what do you think is the most important factor? e.g. "no GUI", "not a web app", "too manual", "doesn't connect to other stuff yet", etc.
*   If you're brave enough to start using this now or even look at the source code, what mistakes am I making? There are countless ways this could be easier to use, more helpful, faster, more readable, and otherwise better, and you can tell me what those ways are.

Anyone's feedback will be appreciated, but if you have experience in statistics or machine learning, Quantified Self stuff, writing software that people actually use, or whatever else might be relevant, I especially want to hear your opinion. ([Gwern gets to order me around.](http://www.gwern.net/Zeo))

  

This is my main [Hacker School](https://www.hackerschool.com/) project, by the way. If you like programming, I can't recommend it enough, and applications for the fall batch are currently open.

  

(Aside: I don't care much for the term "quantified self". It's accurate in describing what people have been doing with it so far, and I don't really expect to get people to stop using an already-popular mostly-correct label, but I think there's a lot of potential in quantifying your interactions with other people and your environment as well, and having the word "self" in the label might unduly limit imaginations. "Quantified living" is closer to what I have in mind, but if you have catchier or more precise suggestions I'd love to hear them too.)