ML in Python: Getting the Decision Tree out of sklearn

I helped my students understand the decision tree classifier in sklearn recently. Maybe they think I helped too much. But I think it was good for them. We did an interesting little exercise, too, writing a program that writes a program that represents a decision tree. Maybe it will be useful to someone else as well:

def print_tree(t, root=0, depth=1):
    if depth == 1:
        print 'def predict(X_i):'
    indent = '    '*depth
    print indent + '# node %s: impurity = %.2f' % (str(root), t.impurity[root])
    left_child = t.children_left[root]
    right_child = t.children_right[root]
    
    if left_child == sklearn.tree._tree.TREE_LEAF:
        print indent + 'return %s # (node %d)' % (str(t.value[root]), root)
    else:
        print indent + 'if X_i[%d] < %.2f: # (node %d)' % (t.feature[root], t.threshold[root], root)
        print_tree(t, root=left_child, depth=depth+1)
        
        print indent + 'else:'
        print_tree(t,root=right_child, depth=depth+1)

See it in action here.

Did I do this for MILK a few years ago? I’m becoming an absent-minded professor ahead of my time.

Comments Off on ML in Python: Getting the Decision Tree out of sklearn

Filed under machine learning

Data Science Seminars

These seminars that eScience and company are putting on are great. I have to go to the IHME seminars scheduled at competing time once in a while, so someone else attend at tell me about this one: http://data.uw.edu/seminar/2015/mullainathan/

Comments Off on Data Science Seminars

Filed under Uncategorized

Stephen Few on Missing Values

A new edition of the Visual Business Intelligence Newsletter crossed my inbox recently, on how to display timeseries with missing and incomplete values: http://www.perceptualedge.com/articles/visual_business_intelligence/missing_values_and_incomplete_periods_in_time_series.pdf

Good, simple ideas are our most precious intellectual commodity.

Comments Off on Stephen Few on Missing Values

Filed under Uncategorized

That Docker thing sounds promising

I missed this presentation, but I am going to figure out how to use Docker for reproducible research soon! http://benmarwick.github.io/UW-eScience-docker-for-reproducible-research/#1

2 Comments

Filed under software engineering

How many 3-digit zip codes are there?

There are 929 3-digit ZIP Codes in the country (USA).

http://www.carrierroutes.com/ZIPCodes.html

Comments Off on How many 3-digit zip codes are there?

Filed under global health

ML in Python: Decision Trees with Pandas

Doctors love decision trees, computer scientists love recursion, so maybe that’s why decision trees have been coming up so much in the Artificial Intelligence for Health Metricians class I’m teaching this quarter. We’ve been very sklearn-focused in our labs so far, but I thought my students might like to see how to build their own decision tree learner from scratch. So I put together this little notebook for them. Unfortunately, it is a little too complicated to make them do it themselves in a quarter-long class with no prerequisites on programming.

3 Comments

Filed under machine learning

DBER

In a recent post, I confessed my interest in a recent National Academy Press report on teaching methods. The tough thing for me about using this discipline-based education research (DBER) approach is not the name or the acronym, but coming up with the misunderstood concepts from the discipline that students benefit from learning actively. In the report examples, it seems like they are articulated by geniuses dedicated to teaching after years of student observation. I don’t know if I’ll get there one day, but I’m certainly not there now.

But I had a great idea, or at least one that I think is great: see what people are confused by online. I tried this out for my lecture last week on cross-validation, using the stats.stackexchange site: http://stats.stackexchange.com/questions/tagged/cross-validation?sort=votes&pageSize=50

After reading a ton of these, I decided that if my students know when they need test/train/validation splits and when they can get aways with test/train splits then they’ve really figured things out. Now I can’t find the question that I thought distilled this best, though.

Comments Off on DBER

Filed under machine learning

Quinlan stuff

To complement that ASA address about what is statistics that I read last week, here is the abstract KDD address about what is data mining: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=754923

Capture

Does the talk exist somewhere?

Comments Off on Quinlan stuff

Filed under machine learning

Talk: Balasubramanian Sivan / Optimal Crowdsourcing Contests / Wed 1/28

From: theory-group-admin@cs.washington.edu
Subject: Talk: Balasubramanian Sivan / Optimal Crowdsourcing Contests / Wed 1/28, 3:30pm / CSE 403

SPEAKER: Balasubramanian Sivan (MSR)
TITLE: Optimal Crowdsourcing Contests

WHEN: Wednesday, 1/28, 3:30pm
WHERE: CSE 403

ABSTRACT:
We study the design and approximation of optimal crowdsourcing
contests. Crowdsourcing contests can be modeled as all-pay auctions because
entrants must exert effort up-front to enter. Unlike all-pay auctions where a
usual design objective would be to maximize revenue, in crowdsourcing contests,
the principal only benefits from the submission with the highest quality. We
give a theory for optimal crowdsourcing contests that mirrors the theory of
optimal auction design. We also compare crowdsourcing contests with more
conventional means of procurement and show that crowdsourcing contests are
constant factor approximations to conventional methods.

Joint work with Shuchi Chawla and Jason Hartline.

From: Abraham D. Flaxman
Subject: FW: Talk: Balasubramanian Sivan / Optimal Crowdsourcing Contests / Wed 1/28, 3:30pm / CSE 403

Sorry I missed this. Jason told me about this project a little while back, and it convinced me to enter a contest. It was more fun than writing a grant proposal, and when it was rejected they gave me a 2nd runner up cash prize…

–Abie

Comments Off on Talk: Balasubramanian Sivan / Optimal Crowdsourcing Contests / Wed 1/28

Filed under auctions

Verbal Autopsy methods earlier

A cool addition to the big verbal autopsy study I worked on a few years ago is out now: “symptomatic diagnosis” takes the verbal autopsy approach and applies it to find out what ails people non-fatally. http://www.biomedcentral.com/1741-7015/13/15

sd

Comments Off on Verbal Autopsy methods earlier

Filed under global health