scikit-learnにおける分類で予測結果の信憑性を表示する

scikit-learnでクラス分類をさせる場合、1回毎の予測結果がどれくらい正しそうか、という確率のようなものを表示することができます。
端的に言葉で表現するのが難しいので例を挙げると、
2次元データである点が赤グループか青グループかという2クラス分類問題で、K近傍の識別器を学習させたとします。
そこで、ある点Aはどちらのグループであるかこの識別器に判断させます。

clf.predict(A)

こんなかんじで。
その結果として点Aの周りの点が赤グループ多数か青グループ多数かで判断し結果を返してきますが、判断結果が赤グループだった場合、周りの点が全部赤グループなので赤と判断されたのか、それとも赤グループと青グループが混在している中、僅差で赤グループと判断されたのか知りたくないか?ということです。要するに判断結果の信憑性です。

predict_proba を使うとこの投票結果が表示できます。

clf.predict_proba(A)

とすると、点Aが赤グループである可能性と青グループである可能性が少数2つの配列で返ってきます。
この時指数で表示されると見づらい場合があるので適当に

np.set_printoptions(suppress=True)

とか記述して指数で表示させないようにしておくといいかもしれません。

 

 

 

Python3.6をインストールしたせいでPython2.7が動かなくなった時の対策

結論から言うとプログラムの最初に
#!python2.7
って追加すれば動きます。

強化学習をやりたくてTensorFlowをいれたかったのですが、
Python2.xでは動かないということで、
血の涙を流しながらPython3.6を入れました。
最新版のPython3.7だとTensorFlowは動かないみたいです。

Python3.6を導入して、2.7用に作っていたプログラムがエラーを吐くようになりました。
ほとんどが print に関するエラーでうざいです。
括弧をつけろ括弧をよぉ!とcmdで怒られます。

SyntaxError: Missing parentheses in call to 'print'. Did you mean print(hoge)?

まぁpython3.xで print の仕様が変わったのは有名な話で
自分はこれが嫌ってのもあって 2.7 を使っていました。

いちいち全部書き直すのもアホな話ですが
プログラムの最初にこの一言を追加するだけでいいってのは
地獄に仏であります。



これであなたもトロイカ(スリーターン)マスター

フィギュアスケートを習い始めたもののトロイカ(スリーターン)がなかなかできなくて
悩んでる哀れな子羊へ

タバスコマンがそんなあなたの救世主(メシア)となろう


吾輩のフィギュアスケート持論のひとつに「フィギュアスケートは上半身が8割」というものがある
足で滑るんだから足捌きが重要なのでは?と思ったそこのあなた
あなたはフィギュアスケートNOOBです

NOOBとは
主にゲームでへたくそな初心者を揶揄する英単語

まずスリーターンができない雑魚はフォアやバックでの普通の滑走が正しくできていない
よくある悪い例を見せると

・顔がめっちゃ前に出てる

f:id:tabascolabo:20180316172208j:plain

これは吾輩の統計的に一番多い
頭が前に突出している
そして多くの場合これは本人は気づいてない
これだとうまく滑れないだけでなく見た感じきもいからやめような
言うまでもないけど自分の足元を見てるのは論外


・ケツが出てる

f:id:tabascolabo:20180316172601j:plain
腰をしっかり入れて滑ろうとしすぎておなかを伸ばしすぎ
結果としてお尻をうしろに突き出すえっちなポーズで滑ってしまう
スケートは確かに引け腰になって滑ってはいけないが
お腹を伸ばしてはいけない
お腹はしっかりと前に飛び出ないようにおさえて、
お尻も後ろに飛び出ないようにする

理想の姿勢は体が一直線になればいい

f:id:tabascolabo:20180316173952j:plain

あごを引いて頭をできるだけ後ろにする
お腹を伸ばさない
お尻を出さない

理想としては鏡を見たりビデオを撮ってもらったりして自分の姿勢を客観的に確認すること
自分の感覚でまっすぐだと感じていてもだいたいまっすぐじゃない
この姿勢はフォアでもバックでも同じ

練習方法の例として
・あごを引いて頭をできるだけ後ろにする
・お腹を両手で強めに押さえてお腹が伸びたり前に出たりしないようにする
(この時胸を張って肩を後ろにしたりしない

肩のことは考えないで自然にお腹を押さえればいい)
・お尻を出さない
この3つに気をつけてゆっくり滑る
速度を出すと絶対崩れるから最初は微速で
この姿勢をしてて首とお腹が若干苦しかったら多分正しい姿勢ができてる

その状態で何度もフォアとバックをゆっくり滑る練習をしよう
おすすめは姿勢がぶれにくい両足スネーク(小さく)
この姿勢ができてればトロイカは簡単にできる

トロイカの最中に姿勢が崩れるとうまくいかないので
ターン中でも上半身をピタァッ!と固定したままできるよう体で覚えるまで繰り返し練習だ
↓こんな感じでひたすら滑って姿勢を覚えれば猿でもできるようになる

f:id:tabascolabo:20180316181017j:plain



scikit learn でよく使うもののメモ

自分でもたまに忘れるのでメモ。

 

・訓練させた識別器の保存(name001という名前で保存)

from sklearn.externals import joblib

joblib.dump(clf, 'name001.pkl')

 

・保存した識別器のロード(name001という識別器をロード)

from sklearn.externals import joblib

clf = joblib.load('name001.pkl')

 

・正答率を確認

print(clf.score(問題のデータ,答えのデータ))

ロシアへ荷物を送る時にめんどくさい書類いらない説

ロシアに何度かEMSで荷物を送ったことがある
段ボール箱に荷物を詰めて郵便局に持って行って
EMS用のラベルをもらって記入して送る
これだけで毎回ちゃんと相手に届いた

しかし日本郵便のウェブサイトには
税関告知書やインボイスが必要だと書かれている
税関告知書の注釈に「EMSラベルにうんぬん」と書いてあって
EMSラベルが税関告知書の役目を果たすのか別物なのか
意味がわからないし必要な枚数が3枚と書いてあるのもよくわからない
さらにインボイスが必要だと書かれている

俺は郵便局でもらえるラベル以外に
書類を用意したことはないが毎回届いた
なにが正解なのか誰もわからない
これがロシアだ

ロシアへのEMSは一週間くらいで届く

最近送った荷物の配送履歴はこれ
ちゃんとロシアの税関までは追跡ができる

f:id:tabascolabo:20180201190442j:plain

これは自分は別の書類を用意しなくても送れたというただの体験で
書類がいらないことを保証するものではないから
ロシアに荷物を送るときは自分の責任で送ってくれよな!
俺は責任とらないゾ☆

※以下余談

モルドバ共和国に荷物が送りたい物好きなあなたへ

モルドバにも荷物を1度だけ送ったことがある
モルドバはEMSが非対応
普通の航空便で送ることになる

これも自分は郵便局でもらったラベル以外に
書類を用意しなかったがちゃんと相手に届いた
しかも一週間くらい
EMSと同じくらいの速さで着く
EMSの「エクスプレス」とはなんなのか

これもまた自分の体験なので
モルドバに荷物を送るときは自己責任で送ってください
俺は責任とれません

 

 

ロシアのアパートを借りるのにAirBnBを何度か使った感想

自分はロシアでアパートを借りるときにロシアの賃貸サイトを見て借りたこともあるし
AirBnBという海外旅行者向けの物件サイトを利用して借りたことも何度かある
いいところと悪いところを比較するぜ!

AirBnBのいいところ
クレジットカードで払える
何ヶ月も前から予約できる
問題が起きたときにAirBnBが介入してくれる
日本語サポートがある

AirBnBの悪いところ
外国人向けということで物件の値段設定がかなり割高
AirBnBを利用すればトラブルがゼロというわけではない

・自分で借りる場合のいいところ
相場の値段で借りれる
物件の選択肢が豊富
物件を実際に見てから判断できる

・自分で借りる場合の悪いところ
トラブルがあったら自分でなんとかしなくちゃいけない
前もって予約できない

ロシア語が話せないからAirBnBのほうがいいか、という判断は無謀
ロシア人は英語が話せない
「話せる」と豪語する人も実際には話してみるとへたくそ過ぎて聞き取れない
アパートを借りる上で必ず大家と話す必要が出てくるから
ロシア語ができない人は絶対にホテルを選ぶべき
ロシア語が話せないのにロシアに来たいならツアー組んで来ような

アパートを借りると絶対に何らかの問題が発生して大家に連絡することになる
(大家が金を払い忘れてて)ネットにつながらなくなったとか、
風呂のお湯が出ないとか、
AirBnBで支払った時の為替レートと今の為替レートの差額を払えと言われるとか、
大なり小なりかならずトラブルはある
相手はロシア人だから細かいところまで目がいかないのだ
これは民族性だからしかたない
なんでもっとちゃんとできないの?と言いたくなるが
それはカマキリになんで折り紙が折れないの?って言う並に無駄
そんなこんなで毎回何らかしらトラブルがあってAirBnBのサポートに相談したけど
AirBnBのサポートは親切で頼りになるぞ

そもそもロシア人の大家はAirBnBの規約とか読んでないから
AirBnBが禁止してるAirBnB外での連絡(SMSとかWhatsapp)をしようとしてきたり
前述した差額を払えって言ってきたりとか(AirBnBは支払後の価格の変更は禁止している)
AirBnBを使えば100%トラブルなし!というわけではなく
そういう時には毅然とした態度で対応する必要がある
AirBnBに連絡しても返事がすぐ返ってくるわけではないしな

安くいい物件に泊まるか高い金払ってAirBnBという後ろ盾をつけるかって判断
どっちもあり
AirBnBはほかにもいろいろな安心サービスをやってるから
ロシアでの滞在中少しでも不安要素を減らしたいという場合はAirBnBでいいんじゃなかろうか
そもそもロシア語話せないのにロシアに来る酔狂な人はほとんどいないと思うしな

 

 

 

東京-モスクワ間のエコノミークラスは民度が糞

東京-モスクワ間の飛行機はほとんどがモスクワ経由でパリとかロンドン等の西ヨーロッパへ行く
もちろん乗り換えは糞時間がかかるがその反面格安で
西ヨーロッパに行きたいけど直行便の代金すら払えない、
ケチらなくてはいけない人たちが多く乗ってくる

金がない人が多いってことは民度の低い人が多いってのも自然なことである

アエロフロートはネットでは悪い噂がやたらでてくるが
東京-モスクワ間のフライトで自分はアエロフロートが原因でいやな思いをしたことがない
フライトの出発時間が多少遅れることはあってもなんだかんだ時刻通りに到着したり
機内のサービスも別にちゃんとしてると思う
むしろ糞なのは乗客たちのほう

アエロフロートはできるだけ日本人のとなりは日本人、
ロシア人のとなりはロシア人にしようとしてるみたいで
自分のとなりに座るのはだいたい日本人だった
周りを見ても毎回そんな感じだった

もちろん外人にも態度が悪い人は多いけど
そういうわけで自分のとなりはだいたい日本人だったから
自分が遭遇した印象的なファックな日本人を紹介するぜ!

・小汚え若者
金があまりないけど旅人キャラっていう設定で生きていきたいのか知らんが
大学生やそこらの年齢になるとバックパッカーになりはじめる奴が多い
バックパッカーに金がないのではなく金がないからバックパッカーなのである
金があったら普通にホテルを予約して旅行できるからな
こういう奴はまず身だしなみが小汚いから見てすぐわかる
汚いホテルでも安ければ喜んで寝れます!みたいなスタンスの彼らは
マジで神経が図太い
そして多くの場合そのせいで他人もこのくらい平気だろと考えている
自分のとなりに座った小汚いバックパッカー風若者は
食事中に肘を横に広げて食べるから食事のたびにひたすら俺の腕に肘打ちしてきてうざかった
なぜとなりの人に肘を当てないように肘を下に向けないのか
こいつはそれだけではなく前の座席の後ろに設置してある画面でオセロかなんかのゲームをしていたのだが
タッチパネルでゲームをするのでタッチするたびに前の座席をどついていた
飛行機の画面はタッチパネルの反応が悪いのはしかたないがそれならリモコンで操作しろよ
前に座ってた外人が頭を揺らされて怒ったのか座席に後頭部を何度も打ち付けてうるせえ!と意思表示をして
そいつは気づいてやめた
とにかく色々迷惑な奴で最悪なフライトだった

・ピクニックババア
搭乗して席に着くやいなやおにぎりを取り出して食い出したりゆで卵を食い始めたババア
せめて離陸後まで待てよ
自分の至近距離で突然食べ物のにおい嗅がされるのって不快なんだなって気づいた
空港にカフェやレストランあるんだから腹が減ってるなら食ってこいよ
日本人のババアの食べ物持ち込み率多すぎる
ババアって常に食ってないと死ぬのかな?

このふたりに遭遇したあと自分はもうエコノミークラスでモスクワに行くのをやめた
もちろんみんながみんなこんなファックな人じゃない
となりに座って快適な人や軽く談笑して楽しめるようないい人もいた
ただ飛行機に乗る前に「隣に糞な人来ませんように……」って毎回考えてる自分に気づいて
これはもうエコノミークラスに乗ること自体が馬鹿だなと思った
10時間もただでさえ糞狭い座席に座らなくちゃいけないあげく自分の隣がファックな奴だと
まじでストレス半端ない

これもう現代の奴隷船だろ