タグ

2017年8月18日のブックマーク (7件)

  • 道具としてのCython - tkm2261's blog

    皆様tkm2261です。今日は道具としてのCythonと題して、 使うことに特化してCythonの解説をしたいと思います。 きっかけはKaggle Cythonを使うとき FaronさんのF1最適化 DP (Dynamic Programming)を含んだ実装はCythonの出番 使い方 その1 『Cython実装』 ファイルは.pyx cimport 型宣言 オプション指定 普通のPythonも書ける 使い方 その2『コンパイル』 setup.pyの書き方 コンパイルの実行 使い方 その3『呼び出し』 速度検証 付録: 実装 utils.pyx きっかけはKaggle 最近まで参加していたInstacart Market Basket Analysis | Kaggleで どうしても高速化したい処理があり実装しました。 Numbaも良いのですが、速くなるときとならないときがあり、JIT

    道具としてのCython - tkm2261's blog
  • Go言語Internal パート2:名前付き戻り値の魅力的な利点 | POSTD

    ご承知のことと思いますが、Go言語では戻り値に名前を付ける機能を提供しています。これまで minio ではこの機能をそれほど使っていませんが、この先変わって行くでしょう。というのも、記事で以下に説明するような魅力的な利点が含まれているからです。 私たちのような開発者であれば、下記に示すように “デフォルト”値を返すために return 文ごとに新しいオブジェクトのインスタンスを生成するという形で大量のコードを使うことがあるでしょう。 type objectInfo struct { arg1 int64 arg2 uint64 arg3 string arg4 []int } func NoNamedReturnParams(i int) (objectInfo) { if i == 1 { // Do one thing return objectInfo{} } if i == 2

    Go言語Internal パート2:名前付き戻り値の魅力的な利点 | POSTD
  • Pythonメモ : あまり知られていない(かもしれない)テクニック集 その1 - もた日記

    valueswapping.py : 変数の値を交換 controlwhitespaces.py : 空白の操作 concatenatestrings.py : 長い文字列を複数行に分けて書く forelse.py : forループのelse文 whileelse.py : whileループのelse文 tryelse.py : tryのelse文 boolasint.py : ブール型を数値として扱う rawinputintegers.py : 文字列内の複数の数値を変換 chainedcomparison.py : 比較の連鎖 conditionalassignment.py : 条件による代入 conditionalfunctioncall.py : 条件による関数呼び出し stepslice.py : リストの要素を何個置きに取得 maxsplit.py : splitの分割回数

    Pythonメモ : あまり知られていない(かもしれない)テクニック集 その1 - もた日記
  • 為替をDeepLearningで予測してみた話 - Qiita

    概要 現在の日付を$T$とすると、$T+1$から$T+30$までにおける日次価格の単純移動平均をDeepLearningを使って予測し、 ロングポジションを持った(もしくはショート)時の価格より、予測した移動平均を上(下)回れば利益確定するようなシミュレーション売買を行いました。また、30日保持したら強制的に手仕舞いするようにします。 エントリーは日時毎に残高があれば全力で行うようにします。 ※オレンジのラインが30日後の30日単純移動平均になります。緑がx軸の日付時点における為替価格です。 使用したDLフレームワーク chainer ver1.3~1.5 ちょうどver1.5で互換性が大幅に変更になって、対応するのが大変でした。 2017/8現在はver2.0.2になっているみたいですね。 使用データ みずほヒストリカルデータ https://www.mizuhobank.co.jp/r

    為替をDeepLearningで予測してみた話 - Qiita
  • 機械学習における、定型的な作業を自動化する - Qiita

    機械学習を利用する際は、データの前処理から始まって適切なモデルを選んでパラメーターを最適化して・・・というように多くの作業が伴います。 ただ、この作業の少なくない部分は定型的なものです。前処理でいえば、数値データに対しては正規化を行う、カテゴリー変数は0/1の特徴量へ変換する(ダミー変数化)、といった処理はどんな場合でもとりあえず実行する処理になります。 もちろん高度な特徴量エンジニアリングなどは話が別ですが、データがあったときに定型的な作業をさくっと行い、とりあえず基礎的なモデルでどれぐらいの精度が出るのかを見てみたい、というシーンはよくあるものです。 そこで、そんな作業を自動化するための仕組みを開発しました。名前はkaruraといいます。 chakki-works/karura コンセプトとしてはこの図のように、モデルを作るにあたっての定型的な一連の作業を自動化する、といったものです。

    機械学習における、定型的な作業を自動化する - Qiita
  • データの傾向が変わっても性能が落ちにくいモデルの作り方 - Qiita

    下記論文のサーベイ記事です. - タイトル: Generative and Discriminative Text Classification with Recurrent Neural Networks - Deep Mindの論文 - 6 Mar 2017 - 著者: Dani Yogatama, Chris Dyer, Wang Ling, Phil Blunsom 主旨 テキスト分類でデータの傾向が変わっても生成モデルは識別モデルより性能が落ちにくいことを実証. 要約 日常だとデータの傾向は流行によってデータの出現頻度とか変わるし,新たな概念とかもすぐできる. 傾向が変わるたびにデータセットを全て学習しなおすのは時間がかかるので,できれば新たなデータのみで学習させたい.(Continual learning) あと,未知のクラスであっても予測できるようにしたい.(Zero-sho

    データの傾向が変わっても性能が落ちにくいモデルの作り方 - Qiita
  • Kaggle - Instacart上位陣解法まとめ - Qiita

    KaggleのInstacart Market Basket Analysis1の上位陣解法についてまとめました. 参考になりそうでしたら幸いです. Instacart Market Basket Analysis1とは ユーザーが次に注文する商品の予測. データ構成2 ユーザー数: 20万 注文回数: 340万 商品数: 5万 全体の把握には記事2が参考になります. [2位] 2nd Place Solution Name: ONODERA Kaggle Discussion: https://www.kaggle.com/c/instacart-market-basket-analysis/discussion/38143 Code: https://github.com/KazukiOnodera/Instacart Writeup: http://blog.kaggle.com/2

    Kaggle - Instacart上位陣解法まとめ - Qiita