In [1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sea
%matplotlib inline

In [2]:
reek_columns =[
 'reek_total',
 'Attribute',
 'BooleanParameter',
 'ClassVariable',
 'ControlParameter',
 'DataClump',
 'DuplicateMethodCall',
 'FeatureEnvy',
 'InstanceVariableAssumption',
 'IrresponsibleModule',
 'LongParameterList',
 'LongYieldList',
 'ManualDispatch',
 'ModuleInitialize',
 'NestedIterators',
 'NilCheck',
 'PrimaDonnaMethod',
 'RepeatedConditional',
 'SubclassedFromCoreClass',
 'TooManyConstants',
 'TooManyInstanceVariables',
 'TooManyMethods',
 'TooManyStatements',
 'UncommunicativeMethodName',
 'UncommunicativeModuleName',
 'UncommunicativeParameterName',
 'UncommunicativeVariableName',
 'UnusedParameters',
 'UtilityFunction',
 'delta_Attribute',
 'delta_BooleanParameter',
 'delta_ClassVariable',
 'delta_ControlParameter',
 'delta_DataClump',
 'delta_DuplicateMethodCall',
 'delta_FeatureEnvy',
 'delta_InstanceVariableAssumption',
 'delta_IrresponsibleModule',
 'delta_LongParameterList',
 'delta_LongYieldList',
 'delta_ManualDispatch',
 'delta_ModuleInitialize',
 'delta_NestedIterators',
 'delta_NilCheck',
 'delta_PrimaDonnaMethod',
 'delta_RepeatedConditional',
 'delta_SubclassedFromCoreClass',
 'delta_TooManyConstants',
 'delta_TooManyInstanceVariables',
 'delta_TooManyMethods',
 'delta_TooManyStatements',
 'delta_UncommunicativeMethodName',
 'delta_UncommunicativeModuleName',
 'delta_UncommunicativeParameterName',
 'delta_UncommunicativeVariableName',
 'delta_UnusedParameters',
 'delta_UtilityFunction',
 'delta_reek_total']
lizard_columns = [
 'avg_ccn',
 'avg_nloc',
 'avg_token',
 'fun_count',
 'fun_rate',
 'nloc_rate',
 'warning_count',
 'delta_avg_ccn',
 'delta_avg_nloc',
 'delta_avg_token',
 'delta_fun_count',
 'delta_fun_rate',
 'delta_warning_count',

]

rubocop_columns = [
 'delta_lint_',
 'delta_lint_duplicate',
 'delta_metrics_abcsize',
 'delta_metrics_blocklength',
 'delta_metrics_blocknesting',
 'delta_metrics_classlength',
 'delta_metrics_cyclomaticcomplexity',
 'delta_metrics_linelength',
 'delta_metrics_methodlength',
 'delta_metrics_modulelength',
 'delta_metrics_parameterlists',
 'delta_metrics_perceivedcomplexity',
 'delta_nloc',
 'delta_nloc_rate',
 'delta_style_',
 'delta_total',
        'delta_performance_',
    'delta_security_',
    'delta_metrics_',
 'lint_',
 'lint_duplicate',
 'metrics_abcsize',
 'metrics_blocklength',
 'metrics_blocknesting',
 'metrics_classlength',
 'metrics_cyclomaticcomplexity',
 'metrics_linelength',
 'metrics_methodlength',
 'metrics_modulelength',
 'metrics_parameterlists',
 'metrics_perceivedcomplexity',
 'style_',
    'performance_',
    'security_',
    'metrics_',
 'total',
 ]

In [3]:
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier

from sklearn.preprocessing import binarize
from sklearn.cross_validation import train_test_split, cross_val_score
from sklearn import metrics
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2,f_classif, mutual_info_classif


/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
  "This module will be removed in 0.20.", DeprecationWarning)

In [4]:
%%writefile learner.py
import numpy as np
import pandas as pd
import json
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier

from sklearn.preprocessing import binarize
from sklearn.cross_validation import train_test_split, cross_val_score
from sklearn import metrics
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2,f_classif, mutual_info_classif, f_regression, SelectPercentile

class RubygemLearner(object):
    def __init__(self, fn, exclude_features=[]):
        with open(fn) as f:
            data = json.load(f)
        self.data = data["data"]
        self.spec = data["spec"]
        self.df = pd.io.json.json_normalize(self.data)
        self.features = self.exclude_unwanted_features(exclude_features)
        self._rename_columns()
        self.df = self.df[self.df["avg_nloc"]<20]
            
    def exclude_unwanted_features(self, exclude_features):
        return [k for k, v in self.data[0]['stat'].items() if k not in exclude_features]
        
    def remove_too_small_changes(self):
        try:
            df = df.groupby('name').filter(lambda x: x['delta_nloc'].sum() >2000)
        except:
            pass
    
    def summary(self):
        print(self.spec)
        print('nb_records:', len(self.df))
        print("abandoned:", (self.df['label'] != 'maintained').sum())
        
    def feature_evaluation(self):
        X = self.df[self.features]
        y = (self.df.label == 'maintained').values.astype(int)
        X_new = SelectKBest(f_classif, k=10).fit(X, y)
        feature_list = np.array([X_new.scores_.astype(float), self.features]).T
        feature_list=[[float(x[0]), x[1]] for x in feature_list]
        return sorted(feature_list, key=lambda a_entry: a_entry[0], reverse=True )
        
    def _rename_columns(self):
        old_new_cols = {}
        for name in self.df.columns:
            if name.startswith('stat'):
                old_new_cols[name] = name.split('.')[1]
        self.df.rename(columns=old_new_cols, inplace=True)
        
    def my_train_test_split(self, test_size=0.3):
        Xgems = self.df[["name"]].drop_duplicates()
        X_train_gems, X_test_gems = train_test_split(Xgems, test_size=test_size)
        X_train = self.df[self.df['name'].isin(X_train_gems['name'])]
        y_train = (X_train.label == 'maintained').values.astype(int)
        X_train = X_train[self.features]
        dftest = self.df[self.df['name'].isin(X_test_gems['name'])]

        return X_train, y_train, dftest

class Trainer(object):
    def __init__(self, learner):
        self.learner = learner
        
    def predict_sequence(self, estimator, df, name, label, threshold=0.5):
        X = df[df['name']==name][df['label']==label][self.learner.features]
        y_pred = estimator.predict(X)
        return 0 if np.mean(y_pred) < threshold else 1

    def test_model(self, model, dftest):
        estimator = model
        testers = dftest[["name", "label"]].drop_duplicates()
        y_test = (testers.label == 'maintained').values.astype(int)
        y_pred = [self.predict_sequence(estimator, dftest, t[0], t[1]) for t in testers.values]
        #print(y_pred)
        #print(y_test)
        #print(metrics.classification_report(y_test, y_pred))
        return metrics.accuracy_score(y_test, y_pred)

    def train_and_test(self, model):
        accuracies = []
        for i in range(5):
            X_train, y_train, test = self.learner.my_train_test_split(test_size=0.3)
            model.fit(X_train, y_train)
            accuracies.append(self.test_model(model, test))
        return np.mean(accuracies)


Overwriting learner.py

In [5]:
from learner import RubygemLearner, Trainer

In [6]:
import json

fn = 'RubygemDigger--Steps--GenerateJsonForLastVersions--2.data.json'
fn = 'RubygemDigger--Steps--GenerateJsonForAllVersions--1.data.json.all.json'

learner = RubygemLearner(fn, lizard_columns + reek_columns)
learner.summary()
print(learner.feature_evaluation())


{'version': 1, 'description': 'most data', 'min_number_of_gems': 12, 'min_months': 10, 'min_nloc': 2000, 'min_months_good': 20, 'history_months': 10, 'stopped_time_point': '2015-01-01 00:00:00 UTC', 'ignored_months_for_good': 10}
nb_records: 9968
abandoned: 3819
[[286.12976744783947, 'lint_'], [127.35050621783235, 'performance_'], [108.1601881490984, 'style_'], [102.37045052923294, 'lint_duplicate'], [101.23985868390126, 'metrics_classlength'], [88.825071314669, 'metrics_cyclomaticcomplexity'], [88.65195416899282, 'metrics_perceivedcomplexity'], [53.684523545476225, 'metrics_abcsize'], [53.14334521323146, 'metrics_'], [48.479367953951815, 'security_'], [31.475151865122662, 'metrics_parameterlists'], [31.38110160564853, 'metrics_methodlength'], [20.83904074719494, 'nloc'], [14.150394668797569, 'delta_performance_'], [11.881953071591333, 'metrics_blocklength'], [7.798244131446775, 'delta_metrics_parameterlists'], [6.130574565584444, 'delta_security_'], [2.9873230789721323, 'delta_style_'], [2.1994942834443747, 'delta_metrics_blocknesting'], [2.14204879474455, 'delta_total'], [1.9455586031862873, 'metrics_modulelength'], [1.6712056288180757, 'delta_metrics_abcsize'], [1.6608632807106063, 'total'], [1.3027751243652497, 'metrics_linelength'], [1.2707258740638296, 'delta_metrics_modulelength'], [0.9464331642723319, 'delta_nloc'], [0.6504574443930397, 'delta_metrics_classlength'], [0.5729792984658802, 'delta_metrics_blocklength'], [0.21939798335811578, 'delta_metrics_cyclomaticcomplexity'], [0.20304075539321514, 'delta_lint_'], [0.15754232686623268, 'delta_lint_duplicate'], [0.05205844026100055, 'delta_nloc_rate'], [0.048796006359738464, 'metrics_blocknesting'], [0.04308518503095126, 'delta_metrics_linelength'], [0.026278613693431534, 'delta_metrics_methodlength'], [0.0227286361473354, 'delta_metrics_'], [0.009462537002013601, 'delta_metrics_perceivedcomplexity'], [0.0011524377996549662, 'age']]

Basic building blocks


In [ ]:


In [7]:
trainer = Trainer(learner)

In [8]:
def label_counts_summary(data, label='unknow'):
    N = len(data)
    N_ones = data.sum()
    print('''
label: {}
nb. of observations: {}
nb. of ones (good gems): {}
frequency: {:.3f}
    '''.format(label, N, N_ones, 1.0 * N_ones / N))

Classify using LogisticRegression


In [9]:
from sklearn.ensemble import BaggingClassifier
from sklearn.ensemble import BaggingRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import AdaBoostClassifier
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.svm import LinearSVC
from sklearn.neural_network import MLPClassifier

models = [
    LogisticRegression(),
    DecisionTreeClassifier(),
    #BaggingClassifier(grid.best_estimator_, max_samples=0.5, max_features=0.5),
    BaggingClassifier(DecisionTreeRegressor()),
    BaggingClassifier(LogisticRegression()),
    BaggingClassifier(KNeighborsClassifier(n_neighbors=15)),
    RandomForestClassifier(n_estimators=20),
    AdaBoostClassifier(n_estimators=100),
    GradientBoostingClassifier(n_estimators=100, learning_rate=1.0,max_depth=4, random_state=0),
    LinearSVC(loss='l2', penalty="l2",dual=False, tol=1e-4),
    MLPClassifier(solver='lbfgs', alpha=1e-5,hidden_layer_sizes=(15,), random_state=1)
]

In [10]:
def evaluate_models(trainer, models):
    results = []
    for model in models:
        print("*" * 50)
        print("Class:", type(model).__name__)
        precision = trainer.train_and_test(model)
        print("Parameters:", model.get_params())
        print("Precision", precision)
        results.append(precision)
    return results

In [11]:
import json

def evaluate_specs(trainer, spec_type_name):
    results = []
    for spec_id in [1,3,4,5,7,8]:    
        fn = '%s--%d.data.json' % (spec_type_name, spec_id)
        results.append(evaluate_models(trainer, models))

    for row in results:
        for n in row:
            print("|", "%4.3f" % n, end='')
        print("|")
    return results

In [12]:
learner = RubygemLearner(fn)
trainer = Trainer(learner)
result_last = evaluate_specs(trainer, 'RubygemDigger--Steps--GenerateJsonForLastVersions')


**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.608084627744
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.581112414735
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.568897881509
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.615343566278
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.598975647731
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.62947289795
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.605515718245
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.594545927117
**************************************************
Class: LinearSVC
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/svm/classes.py:199: DeprecationWarning: loss='l2' has been deprecated in favor of loss='squared_hinge' as of 0.16. Backward compatibility for the loss='l2' will be removed in 1.0
  DeprecationWarning)
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.631632821658
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.589111913377
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.615890853533
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.585862176405
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.599419110395
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.620291412115
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.591112134469
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.611228759297
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.596099653885
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.601457685117
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.622939793067
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.582572476737
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.613155594832
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.563619621785
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.581005663502
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.619778072034
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.591457978761
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.628439467875
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.607672676692
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.598168121894
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.61403932873
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.614492458336
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.640574873791
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.581987368162
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.597160111274
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.621439276988
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.588061652474
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.609739910904
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.60275435122
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.608591044934
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.612394608113
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.587157831895
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.611535444944
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.553555575443
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.597626155004
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.613403529967
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.582223403048
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.595347751912
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.602879614756
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.586155052809
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.615577174092
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.579577870916
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.622434565623
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.576924767093
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.594758411784
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.623965512371
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.575920094807
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.613059985475
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.607010709183
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.590804246621
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.610634197747
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.59818256211
| 0.608| 0.581| 0.569| 0.615| 0.599| 0.629| 0.606| 0.595| 0.632| 0.589|
| 0.616| 0.586| 0.599| 0.620| 0.591| 0.611| 0.596| 0.601| 0.623| 0.583|
| 0.613| 0.564| 0.581| 0.620| 0.591| 0.628| 0.608| 0.598| 0.614| 0.614|
| 0.641| 0.582| 0.597| 0.621| 0.588| 0.610| 0.603| 0.609| 0.612| 0.587|
| 0.612| 0.554| 0.598| 0.613| 0.582| 0.595| 0.603| 0.586| 0.616| 0.580|
| 0.622| 0.577| 0.595| 0.624| 0.576| 0.613| 0.607| 0.591| 0.611| 0.598|

In [13]:
result_all = evaluate_specs(trainer, 'RubygemDigger--Steps--GenerateJsonForAllVersions')


**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.625727205891
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.562658568711
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.596659380526
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.625475437873
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.574694797837
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.622996760046
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.611143806654
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.596145132095
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.599154532529
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.606551478858
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.615402197272
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.556905066386
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.616775963672
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.621473576963
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.56359005883
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.607225638556
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.59185341387
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.602114523669
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.630615580364
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.61370713379
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.608114947733
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.574997241154
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.583709781712
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.621524182361
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.596061330955
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.626044946519
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.598316757345
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.601600405065
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.62183046733
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.571175108241
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.627847418996
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.561773980329
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.600119595287
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.636913329483
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.583879758679
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.617387557046
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.605651442378
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.576486489764
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.640072237022
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.584668163646
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.630501610023
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.575257031758
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.599608899007
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.616285057071
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.584148699549
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.604617877317
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.596347147983
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.615760355133
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.639815085187
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.573858381501
**************************************************
Class: LogisticRegression
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'max_iter': 100, 'multi_class': 'ovr', 'n_jobs': 1, 'penalty': 'l2', 'random_state': None, 'solver': 'liblinear', 'tol': 0.0001, 'verbose': 0, 'warm_start': False}
Precision 0.617056440075
**************************************************
Class: DecisionTreeClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': False, 'random_state': None, 'splitter': 'best'}
Precision 0.567622871082
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/bagging.py:146: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  proba[i, predictions[i]] += 1
Parameters: {'base_estimator__criterion': 'mse', 'base_estimator__max_depth': None, 'base_estimator__max_features': None, 'base_estimator__max_leaf_nodes': None, 'base_estimator__min_impurity_split': 1e-07, 'base_estimator__min_samples_leaf': 1, 'base_estimator__min_samples_split': 2, 'base_estimator__min_weight_fraction_leaf': 0.0, 'base_estimator__presort': False, 'base_estimator__random_state': None, 'base_estimator__splitter': 'best', 'base_estimator': DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None,
           max_leaf_nodes=None, min_impurity_split=1e-07,
           min_samples_leaf=1, min_samples_split=2,
           min_weight_fraction_leaf=0.0, presort=False, random_state=None,
           splitter='best'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.588008623119
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__C': 1.0, 'base_estimator__class_weight': None, 'base_estimator__dual': False, 'base_estimator__fit_intercept': True, 'base_estimator__intercept_scaling': 1, 'base_estimator__max_iter': 100, 'base_estimator__multi_class': 'ovr', 'base_estimator__n_jobs': 1, 'base_estimator__penalty': 'l2', 'base_estimator__random_state': None, 'base_estimator__solver': 'liblinear', 'base_estimator__tol': 0.0001, 'base_estimator__verbose': 0, 'base_estimator__warm_start': False, 'base_estimator': LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.621578017534
**************************************************
Class: BaggingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'base_estimator__algorithm': 'auto', 'base_estimator__leaf_size': 30, 'base_estimator__metric': 'minkowski', 'base_estimator__metric_params': None, 'base_estimator__n_jobs': 1, 'base_estimator__n_neighbors': 15, 'base_estimator__p': 2, 'base_estimator__weights': 'uniform', 'base_estimator': KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=15, p=2,
           weights='uniform'), 'bootstrap': True, 'bootstrap_features': False, 'max_features': 1.0, 'max_samples': 1.0, 'n_estimators': 10, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.606223456029
**************************************************
Class: RandomForestClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'bootstrap': True, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': 'auto', 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 20, 'n_jobs': 1, 'oob_score': False, 'random_state': None, 'verbose': 0, 'warm_start': False}
Precision 0.628683772824
**************************************************
Class: AdaBoostClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'algorithm': 'SAMME.R', 'base_estimator': None, 'learning_rate': 1.0, 'n_estimators': 100, 'random_state': None}
Precision 0.593343468171
**************************************************
Class: GradientBoostingClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'criterion': 'friedman_mse', 'init': None, 'learning_rate': 1.0, 'loss': 'deviance', 'max_depth': 4, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_split': 1e-07, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'presort': 'auto', 'random_state': 0, 'subsample': 1.0, 'verbose': 0, 'warm_start': False}
Precision 0.589560797694
**************************************************
Class: LinearSVC
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'C': 1.0, 'class_weight': None, 'dual': False, 'fit_intercept': True, 'intercept_scaling': 1, 'loss': 'squared_hinge', 'max_iter': 1000, 'multi_class': 'ovr', 'penalty': 'l2', 'random_state': None, 'tol': 0.0001, 'verbose': 0}
Precision 0.623451549379
**************************************************
Class: MLPClassifier
/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Parameters: {'activation': 'relu', 'alpha': 1e-05, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (15,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_iter': 200, 'momentum': 0.9, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': 1, 'shuffle': True, 'solver': 'lbfgs', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}
Precision 0.585537206879
| 0.626| 0.563| 0.597| 0.625| 0.575| 0.623| 0.611| 0.596| 0.599| 0.607|
| 0.615| 0.557| 0.617| 0.621| 0.564| 0.607| 0.592| 0.602| 0.631| 0.614|
| 0.608| 0.575| 0.584| 0.622| 0.596| 0.626| 0.598| 0.602| 0.622| 0.571|
| 0.628| 0.562| 0.600| 0.637| 0.584| 0.617| 0.606| 0.576| 0.640| 0.585|
| 0.631| 0.575| 0.600| 0.616| 0.584| 0.605| 0.596| 0.616| 0.640| 0.574|
| 0.617| 0.568| 0.588| 0.622| 0.606| 0.629| 0.593| 0.590| 0.623| 0.586|

In [14]:
from itertools import chain
def print_results(results):
    for row in results:
        for n in row:
            print("|", "%4.3f" % n, end='')
        print("|", "%4.3f" % (sum(row)/len(row)), '|')
    for c in range(len(results[0])):
        col = [x[c] for x in results]
        print("|", "%4.3f" % (sum(col)/len(col)), end='')
    a = list(chain(*results))
    print("|", "%4.3f" % (sum(a)/len(a)), '|')

In [15]:
print_results(result_last)


| 0.608| 0.581| 0.569| 0.615| 0.599| 0.629| 0.606| 0.595| 0.632| 0.589| 0.602 |
| 0.616| 0.586| 0.599| 0.620| 0.591| 0.611| 0.596| 0.601| 0.623| 0.583| 0.603 |
| 0.613| 0.564| 0.581| 0.620| 0.591| 0.628| 0.608| 0.598| 0.614| 0.614| 0.603 |
| 0.641| 0.582| 0.597| 0.621| 0.588| 0.610| 0.603| 0.609| 0.612| 0.587| 0.605 |
| 0.612| 0.554| 0.598| 0.613| 0.582| 0.595| 0.603| 0.586| 0.616| 0.580| 0.594 |
| 0.622| 0.577| 0.595| 0.624| 0.576| 0.613| 0.607| 0.591| 0.611| 0.598| 0.601 |
| 0.619| 0.574| 0.590| 0.619| 0.588| 0.615| 0.604| 0.597| 0.618| 0.592| 0.601 |

In [ ]:
print_results(result_all)

Classify using kNN


In [17]:
nb_range = np.arange(1, 31)
a_scores = []

for nb in nb_range:
    model = KNeighborsClassifier(n_neighbors=nb)
    a_scores.append(trainer.train_and_test(model))
    
plt.plot(nb_range, a_scores, 'o-')
plt.ylabel('Testing accuracy')
plt.xlabel('k neighbours')


/Users/terry/git/rubygem_digger/notebook/learner.py:69: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  X = df[df['name']==name][df['label']==label][self.learner.features]
Out[17]:
<matplotlib.text.Text at 0x11e951668>