GridSearchCV,RandomizedSearchCVのverboseオプション
ドキュメントには単に"Verbosity level."や"Controls the verbosity: the higher, the more messages."としか記載されておらず闇っぽい。
verbose=1では一定の間隔でログを表示,verbose=2ではテスト毎にログを表示,verbose=3ではテスト毎にスコアも含めてログを表示するようなので,私は1か3にすることが多い。
カテゴリ素性を含むpandas.DataFrameをnumpy行列に変換する
1. DictVectorizerを使う
追加のパッケージは不要だけど,一度Pythonの辞書に変換しているので効率が悪そうな気がしなくもない。
2. sklearn-pandasを使う
変換した後のデータの各次元が,もともとは何という属性であったか調べる方法が分からない。DictVectorizer
ではvocabulary_
かfeature_names_
で取れる。
LinearSVC,LinearSVRのdualオプション
"A practical guide to support vector classification" にも書いてあることだけれど,n_samples > n_features
の場合にはdual=False
にするとかなり学習が速くなる。
データの分割,シャッフル
scikit-learn以外の機械学習ライブラリのために使う時に便利
from sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=1.0 / split) from sklearn.utils import shuffle X_train, y_train = shuffle(X_train, y_train)
↓ここからscikit-learn関係なし
matplotlibで色を適当に変える
Python一般
いい加減にPython3に移行しても良さそうなのだけれど,Python2で書かなければならない場合も,移行の際のハマりどころを減らすために以下のような条件で書くことにする。
# coding: utf_8 from __future__ import division, print_function, unicode_literals from future_builtins import *
追記
できるだけPython3に移行しよう!