数理コンサルタントの備忘録

あなたの悩みを数理で解決する

tweepy

API:

自己のソフトウェアを一部公開して、他のソフトウェアと機能を共有できるようにしたものです。ソフトウェアの一部をWEB上に公開することによって、誰でも外部から利用することができるようになります。それによって、自分のソフトウェアに他のソフトウェアの機能を埋め込むことができるようになるので、アプリケーション同士で連携することが可能になるのです。

OAuthでは、下記3つのプレイヤーが鍵になってくる。

サービスプロバイダー

GoogleTwitterなどに代表されるサービスプロバイダーは、OAuthにおいて最も重要な役割を担っている。エンドポイントの提供、各種トークンやベリファイアの発行を行う。


コンシューマ

サービスプロバイダーが提供するAPIを利用してユーザーのデータを扱うアプリケーション。


ユーザー

アプリケーション利用者であり、サービスプロバイダーに会員登録をしている。

MeCab + python + wordcloud で言語処理

MeCab::Tagger というクラスのインスタンスを生成し, parse (もしくは parseToString) というメソッドを呼ぶことで, 解析結果が文字列として取得できます. MeCab::Tagger のコンストラクタの引数は, 基本的に mecab の実行形式に与えるパラメータと同一で, それらを文字列として与えます.

write() argument must be str, not None

↑これに苦しむ...

どうやら出力ファイルが空になっていたらしい...

最後は上手くいった.

 

 

 

 

改行コード

スクリプトファイルに実行権を与えてもコケたのでそのメモ.

 

sakuraエディタを使うと,
CRLF : ↵
CR  : ←
LF  : ↓

 

invalid character in identifier でハマる...
OSErrorでもハマったが, fontのパスを見れば上手くいった.

粒子群最適化

群知能に属するアルゴリズム 粒子群最適化を実装する.

f:id:guitartakahiro:20170519171145p:plain

f:id:guitartakahiro:20170519171130p:plain

 

このSphere functionと Rosenbrock functionに粒子群最適化を適用する.

 

粒子群最適化

これは多次元空間において位置と速度を持つ粒子群でモデル化される。これらの粒子はハイパー空間を飛びまわり、最善な位置を探す。位置の評価は適応度関数で行う。群れのメンバーは良い位置について情報交換し、それに基づいて自身の位置と速度を調整する。このコミュニケーションは主に次の二種類の方法でなされる。

最も良い位置にいる粒子が全体に通知される。

ローカルなベストの位置にいる粒子が近傍の粒子群に通知される。位置と速度の更新は以下の式で行われ、これが繰り返される。

 

  • x\leftarrow x+v
  • v\leftarrow wv+c_{1}r_{1}({\hat  {x}}-x)+c_{2}r_{2}({\hat  {x}}_{g}-x)
    • w は、慣性定数。多くの場合 1 より若干小さい値が最適である。
    • c_{1}c_{2} は群のうちで良い位置に向かう粒子の割合。1 に近い値が多くの場合最適である。
    • r_{1}r_{2}[0,1] の範囲の値をとる乱数。
    • {\hat {x}} は、その粒子がこれまでに発見したベストな位置
    • {\hat  {x}}_{g} は群全体としてこれまでに発見したベストな位置。これをローカルなベスト {\hat  {x}}_{l} にすれば、上記の後者の方法(近傍への通知)になる。

アルゴリズム

  • 各粒子について xv をランダムに初期化。値の範囲は問題の設定に依存する。

 

  • {\hat {x}} を現在位置に初期化。
  • {\hat  {x}}_{g} を群全体で最も良い適応度を持つ粒子の位置に初期化。
  • {\hat  {x}}_{g} での適応度がしきい値より小さく、かつループ回数が事前に設定した回数に達していないうちは、以下を繰り返し実行する。
    • 各粒子について、以下を実行する。
      • 上述の式に従って x を更新する。
      • 新たな位置での適応度を計算する。
      • {\hat {x}} での適応度よりも良い値が得られたら、{\hat {x}} を置き換える。
      • {\hat  {x}}_{g} での適応度よりも良い値が得られたら、{\hat  {x}}_{g} を置き換える。
      • 上述の式に従って v を更新する。

 

 

 

Linuxの勉強日記 & top500

Linuxでは

cat /proc/cpuinfo

でPCのスペックを確認できたが, macはunuixベースなので

system_profiler -listDataTypes

で表示させる.

 

top500:

世界で最も高速なコンピュータシステムの上位500位までを定期的にランク付けし、評価するプロジェクトである。1993年に発足し、スーパーコンピュータのリストの更新を年2回発表している。ハイパフォーマンスコンピューティング(HPC)における傾向を追跡・分析するための信頼できる基準を提供することを目的とし、LINPACKと呼ばれるベンチマークによりランク付けを行っている。リストの作成はマンハイム大学テネシー大学ローレンス・バークレイ米国立研究所の研究者らによる。毎年6月のInternational Supercomputing Conference(ISC)および11月のSupercomputing Conference(SC)の開催に合わせて発表されている。(wiki調べ)

 

ベンチマーク

コンピュータシステムのハードウェアやソフトウェアの性能を測定するための指標

 

LINPACK:

システムの浮動小数点演算性能を評価する