Skip to content

Instantly share code, notes, and snippets.

@nkt1546789
Created June 27, 2015 07:44
Show Gist options
  • Select an option

  • Save nkt1546789/5b465f34a2fbd238e27e to your computer and use it in GitHub Desktop.

Select an option

Save nkt1546789/5b465f34a2fbd238e27e to your computer and use it in GitHub Desktop.
# coding: utf-8
from sklearn.svm import SVC
from sklearn.grid_search import GridSearchCV
from sklearn.metrics import accuracy_score
from gensim.models import word2vec
import numpy as np
np.random.seed(0)
model=word2vec.Word2Vec.load("/path/to/your/model")
dogs=[u"ミニチュアダックスフンド",
u"チワワ",
u"トイプードル",
u"ウェルシュ・コーギー・ペンブローク",
u"ポメラニアン",
u"ラブラドール・レトリーバー",
u"ミニチュア・シュナウザー",
u"柴",
u"パグ",
u"ミニチュア・ピンシャー",
u"ヨークシャー・テリア",
u"パピヨン",
u"シー・ズー",
u"マルチーズ",
u"キャバリア・キング・チャールズ・スパニエル",
u"ビーグル",
u"ゴールデン・レトリーバー",
u"フレンチ・ブルドッグ",
u"アメリカン・コッカー・スパニエル",
u"シェットランド・シープドッグ",
u"ジャック・ラッセル・テリア",
u"ボーダー・コリー",
u"ボストン・テリア",
u"ウエスト・ハイランド・ホワイト・テリア",
u"ペキニーズ",
u"バーニーズ・マウンテンドッグ",
u"ダルメシアン",
u"ドーベルマン",
u"シベリアン・ハスキー",
u"ボクサー",
u"ボルゾイ",
u"バセット・ハウンド",
u"アイリッシュ・セター",
u"ワイマラナー",
u"秋田",
u"エアデール・テリア",
u"トイ・マンチェスター・テリア",
u"イタリアン・グレーハウンド",
u"ブルドッグ",
u"イングリッシュ・コッカー・スパニエル",
u"フラットコーテッド・レトリーバー",
u"ワイアー・フォックス・テリア",
u"日本スピッツ",
u"ケアーン・テリア",
u"狆",
u"ジャーマン・シェパード・ドッグ",
u"グレート・ピレニーズ",
u"ビション・フリーゼ",
u"スコティッシュ・テリア",
u"セント・バーナード",
u"ミニチュア・ブル・テリア",
u"グレート・デーン",
u"カニンヘン・ダックスフンド",
u"スタンダード・プードル",
u"ニューファンドランド",
u"イングリッシュ・スプリンガー・スパニエル",
u"バセンジー",
u"ロットワイラー",
u"ウィペット",
u"アフガン・ハウンド",
u"チャイニーズ・クレステッド・ドッグ",
u"甲斐",
u"ノーフォーク・テリア",
u"ウェルシュ・コーギー・カーディガン",
u"サルーキ",
u"オーストラリアン・シェパード",
u"ブリュッセル・グリフォン",
u"ダンディ・ディンモント・テリア",
u"オールド・イングリッシュ・シープドッグ",
u"プチ・バセット・グリフォン・バンデーン",
u"サモエド",
u"チベタン・スパニエル",
u"日本テリア",
u"ラフ・コリー",
u"ビアデッド・コリー",
u"ポリッシュ・ローランド・シープドッグ",
u"ラサ・アプソ",
u"アラスカン・マラミュート",
u"スタンダード・ダックスフンド",
u"スタッフォードシャー・ブル・テリア",
u"ジャイアント・シュナウザー",
u"アメリカン・スタッフォードシャー・テリア",
u"イングリッシュ・セター",
u"ウェルシュ・テリア",
u"ベルジアン・シェパード・ドッグ・タービュレン",
u"ブービエ・デ・フランダース",
u"北海道",
u"紀州",
u"プチ・ブラバンソン",
u"ノーリッチ・テリア",
u"チャウ・チャウ",
u"ベドリントン・テリア",
u"シーリハム・テリア",
u"ベルジアン・シェパード・ドッグ・グローネンダール",
u"スキッパーキ",
u"レオンベルガー",
u"ケリー・ブルー・テリア",
u"オーストラリアン・テリア",
u"グレーハウンド",
u"オーストラリアン・ケルピー",
u"スタンダード・シュナウザー",
u"ブル・テリア",
u"ボーダー・テリア",
u"プーリー",
u"オーストラリアン・キャトルドッグ",
u"チベタン・テリア",
u"シャー・ペイ",
u"ブリタニー・スパニエル",
u"ジャーマン・ショートヘアード・ポインター",
u"マスティフ",
u"スパニッシュ・マスティフ",
u"イングリッシュ・ポインター",
u"ナポリタン・マスティフ",
u"レークランド・テリア",
u"クランバー・スパニエル",
u"ボルドー・マスティフ",
u"ベルジアン・シェパード・ドッグ・マリノア",
u"ホワイト・スイス・シェパード・ドッグ",
u"オーストラリアン・シルキー・テリア",
u"パーソン・ラッセル・テリア",
u"ローデシアン・リッジバック",
u"キースホンド",
u"ブル・マスティフ",
u"ファラオ・ハウンド",
u"キング・チャールズ・スパニエル",
u"ゴードン・セター",
u"ローシェン",
u"カーリーコーテッド・レトリーバー",
u"スムース・フォックス・テリア",
u"ボロニーズ",
u"アイリッシュ・ウルフハウンド",
u"チェサピーク・ベイ・レトリーバー",
u"コイーケルホンディエ",
u"シコク",
u"ドゴ・アルヘンティーノ",
u"アーフェン・ピンシャー",
u"ロシアン・トイ",
u"アイリッシュ・テリア",
u"ブリアード",
u"ジャーマン・ピンシャー",
u"ピレニアン・マスティフ",
u"土佐",
u"タイ・リッジバック・ドッグ",
u"ウェルシュ・スプリンガー・スパニエル",
u"チベタン・マスティフ",
u"ピレニアン・シープ・ドッグ",
u"セントラル・アジアン・シェパード・ドッグ",
u"アイリッシュ・ソフトコーテッド・ウィートン・テリア",
u"クロアチアン・シープドッグ",
u"アイリッシュ・ウォーター・スパニエル",
u"アメリカン・ウォーター・スパニエル",
u"サセックス・スパニエル",
u"スピノーネ・イタリアーノ",
u"ノバ・スコシア・ダック・トーリング・レトリーバー",
u"ハバニーズ",
u"アイリッシュ・レッド・アンド・ホワイト・セター",
u"ジャーマン・ワイアー・ヘアード・ポインター",
u"ショートヘアード・ハンガリアン・ビズラ",
u"フィールド・スパニエル",
u"ブラッコ・イタリアーノ",
u"ホファヴァルト",
u"ベルジアン・グリフォン",
u"ドレーファー",
u"バセー・アルティジャン・ノルマン",
u"ノルウェジアン・エルクハウンド",
u"アメリカン・アキタ",
u"グレートジャパニーズドッグ",
u"アメリカン・エスキモードッグ",
u"アメリカン・フォックスハウンド",
u"スムース・コリー",
u"スパニッシュ・グレーハンド",
u"ミニチュア・プードル",
u"コモンドール",
u"アナトリアン・シェパード",
u"イビザン・ハウンド",
u"イングリッシュ・フォックスハウンド",
u"オッターハウンド",
u"スカイ・テリア",
u"スコティッシュ・ディアハウンド",
u"カナーン・ドッグ",
u"クーバース",
u"グレーター・スイス・マウンテン・ドッグ",
u"ハリア",
u"スウェディッシュ・バルフンド",
u"ブラック・アンド・タン・クーンハウンド",
u"ブラック・ロシアン・テリア"]
cats=[u"アビシニアン",
u"アメリカンカール",
u"アメリカンショートヘア",
u"アメリカンボブテイル",
u"アメリカンワイヤーヘア",
u"エキゾチック",
u"エジプシャンマウ",
u"オシキャット",
u"オリエンタル",
u"キムリック",
u"コーニッシュレックス",
u"コラット",
u"サイアミーズ〈シャム〉",
u"サイベリアン",
u"ジャパニーズボブテイル",
u"シャルトリュー",
u"シンガプーラ",
u"スコティッシュフォールド",
u"スフィンクス",
u"セルカークレックス",
u"ソマリ",
u"ターキッシュアンゴラ",
u"ターキッシュバン",
u"デボンレックス",
u"トンキニーズ",
u"ノルウェージャンフォレストキャット",
u"バーマン",
u"バーミーズ",
u"ハバナ",
u"バリニーズ",
u"ピクシーボブ",
u"ヒマラヤン",
u"ブリティッシュショートヘア",
u"ペルシャ",
u"ベンガル",
u"ボンベイ",
u"マンクス",
u"マンチカン",
u"メインクーン",
u"ラガマフィン",
u"ラグドール",
u"ロシアンブルー"]
# filter
dogs=[dog for dog in dogs if dog in model]
cats=[cat for cat in cats if cat in model]
dogs_train=dogs[:110]
cats_train=cats[:30]
dogs_test=dogs[110:]
cats_test=cats[30:]
print "dog:{0}, cat:{1} on training".format(len(dogs_train),len(cats_train))
# making data
X=np.array([model[x] for x in dogs_train+cats_train])
y=np.concatenate([np.repeat(1,len(dogs_train)),np.repeat(-1,len(cats_train))])
X_te=np.array([model[x] for x in dogs_test+cats_test])
y_te=np.concatenate([np.repeat(1,len(dogs_test)),np.repeat(-1,len(cats_test))])
# training
param_grid={"gamma":np.logspace(-2,0,10),"C":np.logspace(0,3,10)}
gs=GridSearchCV(SVC(kernel="rbf"),param_grid).fit(X,y)
#param_grid={"C":np.logspace(0,2,10)}
#gs=GridSearchCV(SVC(kernel="linear"),param_grid).fit(X,y)
clf=gs.best_estimator_
# quantitative evaluation
print "best parameters:",gs.best_params_
print "CV score:",gs.best_score_
# qualitative evaluation
labels=clf.predict(X_te)
print accuracy_score(y_te,labels)
for x,label in zip(dogs_test+cats_test,labels):
if label==1:
print u"{0}は犬です".format(x)
else:
print u"{0}は猫です".format(x)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment