WindowsでのPython環境の構築

Python書くならLinuxが普通だと思うけど、私は結構、Windows環境が好きなので、WindowsでもPythonを書ける環境を紹介しておく。

まず、Pythonをインストールする。Aanacondaとかいろいろあるけど、私は以下を使ってます。

www.python.org

インストール方法はググればいっぱい出てくるので、そちらを参照してください。ただ、カスタマイズインストールを選択して、Debug Binariesはインストールしておきましょう。

次に、Visual Studio Community 2017をインストールします。VSCodeとかいろいろありますが、私はVisual Studioがけっこう好きなので、こちらを使います。

www.visualstudio.com

VSCodeとかAtomとかあんまり使ったことないので、なんとも言えないのですが、Visual StudioPythonを書いてて便利だと思うのが、

  • デバッガが使える。
  • リファクタリング機能が使える(変数名とか一括で変更できる)。
  • Git環境が統合されているので使いやすい。

基本的なコード補完とか当然効きますし、今のところ不満はあまりないですね。Surface Proだとそもそも気にならないぐらい速いし。

まぁ、このあたり宗教みたいなもんなので、使いやすい環境を使うのがベストですかね。

久しぶりに書いてみる

・引っ越し
・子育て

とかあって放置してたけど、少し余裕が出てきたので、書き始めてみる。Surfaceも買ったし。内容は雑多に勉強メモかな。

トルコ旅行記 No.1 ~エフェス遺跡編~

12月に挙式を行い、その流れで年末までトルコに新婚旅行に行ってきました。冬はトルコ旅行のベストシーズンではないですが、かなり楽しめました。シーズンじゃないという理由で避けている人がいたらもったいないので、いろんな情報を書いておこうと思います。少しでも参考になれば幸いです。

旅行日程は、12/21~12/30までの10日間、ただし、12/21~22までは日本~トルコ、12/29~30まではトルコ~日本の移動でつぶれます。かなりしんどいですね。直行便だと楽なのですが、私たちは、ドーハ経由トルコ行でした。なので、実質の旅行期間は、12/23~12/28の7日間です。

観光したのは、エフェス、パムッカレ、カッパドキアイスタンブールです。この順番で観光しました。このうち、イスタンブールは、実質3日間観光しました(12/26の午後~12/29の午前まで)。ちなみに、この旅行の最大のボトルネックは、パムッカレ~カッパドキアの移動です。この移動は、どうしても車になってしまうので、休憩しながらだと10時間ぐらいかかります。1日無駄にした気持ちになりますが、しょうがないところです。短い期間しか観光できない人は、どちらかを諦めるしかないかもしれません。

旅行会社

申し込みはファイブスターで行いました。


TOP | FiveStarClub|海外ツアーの専門店ファイブスタークラブ

現地で対応してくださった旅行会社は、Delil Travelです。


最高の旅を最良な価格で / デリルトラベル Delil Travel

レストランなど、地元のお店を教えてくれるので、良かったです。また、おみやげ屋も言えばスキップしてくれます。個人旅行の醍醐味ですよね。

ホテル(AKSAN HOTEL)

日本~トルコのイスタンブールまで移動して、そこから国内線でイズミールまで来ました。この時点で、17時なので、この日はホテルへ直行しました。宿泊したホテルは、AKSAN HOTELです。


アクサン ホテル (Aksan Hotel)|イズミルホテル|トルコホテル |【ホテルズ ドットコム】

1泊して朝食を食べました。部屋のクォリティは、可もなく不可もなく。Wi-Fi使えるのはありがたいですね。朝食はおいしかったです。シャンプー、コンディショナー、ボディソープ(シャワージェル)は備え付けられています。シャワーの水圧は、日本人からすると少し弱めだと感じました。

トルコ旅行でいくつかホテルに泊まりましたが、AKSAN HOTELのコスパは良い方ではないでしょうか。

写真を撮り忘れたので、写真はないです。

シリンジェ村

さて、私たちは、最初にシリンジェ村に向かい、その後、エフェス遺跡に向かいました。シリンジェ村は、昔、ギリシャ人が住んでいたのですが、ギリシャとトルコで住民交換を行い、今は、トルコ人が住んでいます。基本的に、観光地ですね。夏はすごい数の観光客らしいのですが、12月はほとんど観光客はいなかったですね。おみやげ屋の人たちもヒマそうでしたね。

f:id:ryokkie:20141223172430j:plain

こんな感じでがら~んとしてました。

エフェス遺跡

エフェス遺跡は、けっこう広いですが、きちんと残っている建物はそれほど多くないので、それほど時間をかけずに見ることができると思います。遺跡についての詳細は、ガイドブックやいろんなブログに書いてあるので、特に書かかないですが、写真は載せておきます。

f:id:ryokkie:20141223183244j:plain

f:id:ryokkie:20141223184050j:plain

f:id:ryokkie:20141223184910j:plain

天気も良かったし、オフシーズンなので観光客も少なめだったので、すごく観光しやすかったです。

次は、パムッカレについて書こうと思います。

統計処理の勉強メモ(4)

以下の本を読みました。

手を動かしながら学ぶ ビジネスに活かすデータマイニング

手を動かしながら学ぶ ビジネスに活かすデータマイニング

元がブログであるためか、普段からブログを読む人にとっては読みやすいです。位置づけとしては、Rを使って、各種統計解析の手法がどんな問題に適用できるのか?どんな結果が得られるのか?をまとめた資料集っぽい感じで使えると思います。実際、本の中身でも参考文献へのリンクが散りばめられており、より深い学習を目指す人へ配慮しています。Rの使い方もほとんど触れられていませんので、Rについて知りたい場合は、別の本を買うべきです。

パターン集として、手元にあるとうれしい本だと思います。著者もそのあたり割り切っていて、深い記述を意図的に避けていると思います。

統計処理の勉強メモ(3)

以下の本を読みました。

読み物として非常におもしろいです。ビッグデータ系の本の中では一番かな?最近は、どこもかしこもビッグデータビッグデータでみんなおなかいっぱいになっている感じがしますが、よく考えるとマシンログこそビッグデータです。ビッグデータという言葉自体に意味はあまりないですが、データ蓄積、分析、活用、フィードバックの流れはもう止められません。間違いなく、あと10年は主流です。

ビッグデータ系の本はいろいろあります。マーケティング系、統計学系、事例紹介系などさまざまな分野に影響を与えています。その中にあって、著者は、自身が関わってきた研究を中心に話しているので説得力があります。特に今までわかっているようでわかっていなかったことをデータを使って明らかにする説明はとてもおもしろいです。もう、「ビジネス的なビッグデータにあきちゃったよ。なんで常に金儲けなんだよ。おもしろそうだなって発想でやっちゃいけないのかよ。」って人には最適です。

さて、自分自身について悩んでたこともあり、しばらくブログを休んでましたが、大きな外的要因があり、ふっきれました。初心に戻って、承認欲求を満たしながら、いろんなことを学んでいこうと思います。

当面は、ElasticSearchかなぁ。

統計処理の勉強メモ(2)

以下の本を読みました。

1億人のための統計解析 エクセルを最強の武器にする

1億人のための統計解析 エクセルを最強の武器にする

Amazonの評価はとても低いですが、私自身は良いなと思う部分もけっこうありました。というのも、まず、ビジネス的な価値を意識している点です。やっぱり、この視点ってけっこう重要だと思うんですよ。企業とかでやろうと思うと、ある程度お金が発生しているんで、どうしたって最終的には誰かに説明しないといけないタイミングって来るはずで、そういう時に、ビジネス的な価値を意識していないと困ると思うんです。そういったビジネス的な価値と統計処理をどう結ぶかってことが最初の40ページぐらいに書かれていて、ここだけでも読む価値があるかなと。私みたいに統計素人には、統計処理の厳密さよりも、とりあえず何か結果だせるメソッドやフレームワークを提示してくれるってのは、けっこうありがたい。その後、興味があれば、より詳細に学べればいいかなって思います。

あとは、もう、そこらのExcelの解説書より丁寧じゃね?ってぐらいExcelでの統計処理に特化して説明してくれているところですね。エンジニア系の人と付き合っているとExcelの話題なんてあまり出ないですけど、ふつうの人ってやっぱりExcelなんですよね。そういった人たちに、統計処理の効果を伝えようと思ったら、Excelでできるっていうのは大きいと思うんですよ。

なので、この本は、ガチの人にはウケないと思いますが、会社で急に統計処理に取り組むことになった企画部門の人とかにはオススメです。とりあえず、Excelでなんかできますし、フレームワークでどんな分析をするか?まで明確にできれば、プロの人にアウトソースできますしね。著者が「一億人の」って言っているのはこのあたりかなって気もします。全員が全員、Rとかその他もろもろの専用ツールの使い方を知る必要ってない気がしますし。うまく分業できるのが良いような気がします。

ただ、私は、もう少し詳細な部分に興味が出てきたので、Twitterで情報を調べて、ガチっぽい統計の教科書とかも読むようにしているんですが、こちらはどうしたって時間がかかりますね。まぁ、もともと数学をよく勉強している人にとってはそうでもないんでしょうが。まだまだ先は長いと思います。ただ、簡潔データ構造を勉強し始めた時よりは情報が揃っているんでやりやすいですけど。

サーチアプリケーション

Solrは、3.Xの頃に調査したことがあったのですが、4.Xになってからは触れることがほとんどなく、なんか良くなったらしいということだけ聞こえてきていました。また、最近の世の中の事情もあって、構造化データと非構造化データを効率的に扱うことを考えるとサーチアプリケーションという選択肢もアリになっていると思います。専用のDWHを用意するという発想ももちろんアリだと思います。ただ、データの格納が必要なく、すでに稼働しているさまざまなデータを取出し、サーチアプリケーションのインデックスとしてだけ保持しておいて利用するというのもコストがあまりかからないので良いと思います。弱点としては、サーチアプリケーションごとに、機能の違いがあることと、元のデータソースとの同期を適切に行わないといけないというところでしょう。

全文検索というとテキストだけを対象としているように考えてしまいがちですが、ビッグデータブームもあり、Solrコミュニティは、構造化データと非構造化データを結合したアナリティクスを提供するという方向を意識しているように思います。例えば、IBMの方の以下の記事がわかりやすいと思います。

http://www.ibm.com/developerworks/jp/java/library/j-solr-lucene/

検索とアナリティクスの融合は、Splunkが先行していますが、Elasticsearchは、Kibanaなどを利用して、同様のことをより低価格で目指しているように見えます。

http://www.elasticsearch.org/overview/kibana/

このような状況でもあり、真面目に調査しようと思い、改訂版のSolr本とElasticsearch本を購入しました。

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

高速スケーラブル検索エンジン ElasticSearch Server

高速スケーラブル検索エンジン ElasticSearch Server

私は、関係者でもないですが、ステマしておきます。改訂版のSolr本は、前作のSolr本を踏襲しつつ、新しい内容が加筆されているので、前作を読んだことがある人は読みやすいと思います。Elasticsearch本は、まだ眺めただけですが、アプリケーションを利用する人にとっては、十分な情報が書かれているように思います。

サーチアプリケーションというのは、情報系の勉強をするのにもってこいだと思います。検索のUIは多くの人が慣れ親しんでいるのでとっつきやすいですし、結果も見慣れたものなので、苦痛ではないでしょう。Solrのサンプルを動かすだけだと簡単にできるでしょうし、楽しいと思います。さらにそこから深堀りできます。例えば、

  • 高速な検索をどう実現しているのだろうか?という疑問を持ち、高速な検索アルゴリズムを調べる。
  • より良い検索結果とは何だろうか?という疑問を持ち、情報検索の世界を調べる。
  • 世界には多くの言語があるが、それを柔軟に扱うにはどうしたら良いだろうか?という疑問を持ち、自然言語処理の世界を調べる。
  • 関連するものをいろいろ出してくれるレコメンドというのはどう実現されているのだろうか?という疑問を持ち、機械学習の世界を調べる。
  • 多くのユーザに安定的にサーチというサービスを提供するために、システムはどう構成されて、動いているのだろうか?という疑問を持ち、インフラ技術を調べる。

など、さまざまなことをサーチアプリケーションを入り口にして学ぶことができます。私も勉強中です。特に、分散検索などは、昔は試すのが難しかった(作るのが大変だった)ですが、Solrの登場でだいぶ敷居が下がりました。学生実験などでも十分にできると思います。私は、社会人になって、サーチアプリケーションから、検索アルゴリズムの世界に興味を持ち、簡潔データ構造を調べるようになり、いろいろ作ってみたりしました。Suffix ArrayやFM-Indexという技術ももちろんおもしろいですが、アプリケーションとしてのサーチもやはりおもしろいです。また、Luceneのコアは、転置索引やN-gramですが、なぜ、逐次探索(grep系)やSuffix Array系ではないのか?、Suffix Array系にしようと思うとどういった課題を解決しないといけないのか?というのを考えるのもおもしろいです。

私も、まだ、SolrやElasticsearchをあまり触っていないので、これから知識を深めていこうと思います。