概要 大井競馬場に行く機会があったので、機械学習を使って競馬の結果を予測できるかをやってみました。 その結果、帝王賞で一位を当てることができたので、記事を書きます。 かなり適当な予測なので、遊びとして見てもらえたらと思います。 証拠 当たったという証拠に、記念でとった馬券画像。 機械学習で予測したものと、パドックを見て予測したものと、2つ買いました。 (びびって複勝、しかも300円) 問題の設定 大井競馬場で行われる帝王賞の1位のみを当てます。 競馬には、色々な馬券の買い方がありますが、今回は簡単でシンプルな問題設定としたかったので、1位のみを予測することにしました。 データの取得 教師あり学習を行うので、過去の競馬結果のデータが必要です。 こちらのサイトからデータをクローリングしました。 南関東4競馬場公式ウェブサイト レース情報のページから、レースに出る馬の過去情報があるページへのリン
pandas.DataFrameの任意の位置のデータを取り出したり変更(代入)したりするには、at, iat, loc, ilocを使う。at()ではなくat[]のように記述する。 pandas.DataFrame.at — pandas 2.0.3 documentation pandas.DataFrame.iat — pandas 2.0.3 documentation pandas.DataFrame.loc — pandas 2.0.3 documentation pandas.DataFrame.iloc — pandas 2.0.3 documentation 位置の指定方法および選択できる範囲に違いがある。 位置の指定方法 at, loc: 行名(行ラベル)、列名(列ラベル) iat, iloc: 行番号、列番号 選択し取得・変更できるデータ at, iat: 単独の要素の
Photo by Strelka Institute for Media, Architecture and Design 秋山です。 最近、機械学習の勉強をしている人や、機械学習に関連した研究開発の求人を探す人がすごく増えてきましたね。弊社のエンジニアにも機械学習を勉強中の人達が何人かいます。 ただ、「機械学習を勉強したいけど、難しすぎて何から手を付けたらいいのかよくわからない」という人も多いです。それなりに開発経験のあるエンジニアでもそうなので、経験の浅い人だと、なおさらかと思います。 機械学習と一言で言っても、実践するのに必要な知識の分野は多岐に渡ります。 そこで今回は、未経験者が機械学習エンジニアとして転職するにはどういった知識や勉強が必要なのかを書いていきます。 ■最低限必要な知識 ◆プログラミングスキルとライブラリを使える知識 Pythonには、Tensorflowやsciki
logging たいていは単にlogger = logging.getLogger(__name__)をそれぞれのスクリプトで行って、メインスクリプトでbasicConfig()で必要に応じて設定を変えればOK。 print()に似た情報を出力できる。違いは、情報に重要度の違いを持たせられること。デバッグの時にのみ、出力することができたりする ここの”基本ロギングチュートリアル”を見よ if __name__ == '__main__' logging.basicConfig(level=logging.DEBUG, format='%(asctime)s- %(name)s - %(levelname)s - %(message)s') logging.debug('this is debug message') logging.info('this is info message')
>>> import logging >>> logging.log(100, 'test') Level 100:root:test # [ばっど] 書式文字列はその場で組み立てずに >>> logging.warn('test %s,%s' % (1, 2)) WARNING:root:test 1,2 # [ぐっど] 引数として渡す >>> logging.warn('test %s,%s', 1, 2) WARNING:root:test 1,2 # 文字列以外が渡されると文字列に変換される >>> logging.warn({'a': 1}) WARNING:root:{'a': 1} 書式文字列をその場で組み立てないほうがよい理由は、 後述するハンドラやフィルタによってそれぞれの引数を参照することができるからです。 また、出力関数は引数に文字列以外が渡されると文字列に変換されて
はじめに 強化学習よくわからないけど,理論そっちのけでとりあえずパパッと動かして見たいせっかちな人向けです.つまり僕のような人間です. OpenAI Gymで,強化学習の環境を提供してくれているので,それを用います. OpenAI Gymはあくまでも環境だけで,実際に学習させるには他のものが必要です. 調べて見ると,Kerasで強化学習をやるkeras-rlを書いた人がいて,これを使うと簡単に試せそうだったので使います.先人に感謝. 環境の準備 今回の環境 Python 3.6.0 :: Anaconda 4.3.1 (x86_64) Mac OS Sierra 10.12.5 keras 2.0.5 (backend tensorflow) tensorflow 1.2.0 最初はディスプレイのないサーバーでやっていましたが,めんどくさかったので,ローカル環境でやりました. ちなみにディ
Pythonでシストレのバックテスト¶移動平均交差システムを、以下の日足データを使ってバックテストしてみます。 %matplotlib inline import numpy as np import pandas as pd import matplotlib.pyplot as plt # dfのデータからtfで指定するタイムフレームの4本足データを作成する関数 def TF_ohlc(df, tf): x = df.resample(tf).ohlc() ret = pd.DataFrame({'Open': x['Open']['open'], 'High': x['High']['high'], 'Low': x['Low']['low'], 'Close': x['Close']['close']}, columns=['Open','High','Low','Close'])
Pythonでテクニカル指標を作成する¶今回はテクニカル指標を作ってみます。対象とするFXデータとして、以下のコードで作成した日足データを使ってみます。 %matplotlib inline import numpy as np import pandas as pd import matplotlib.pyplot as plt import pandas.tseries.offsets as offsets # dfのデータからtfで指定するタイムフレームの4本足データを作成する関数 def TF_ohlc(df, tf): x = df.resample(tf).ohlc() ret = pd.DataFrame({'Open': x['Open']['open'], 'High': x['High']['high'], 'Low': x['Low']['low'], 'Close'
AWS Lambda を開発する際には コードを書く ZIP で固めてアップロードする サンプルイベントをインプットに Lambda 関数をテスト実行する CloudWatch Logs でログを確認してデバッグ というフローが発生します。 今回は lambda-uploader を使い、 Step2の手順、つまり、コードのZIP化と AWS Lambda へのアップロードをコマンド一発で実行する方法について解説します。AWS Lambda では依存ライブラリも含めてZIP化しないといけないため、多くの人が一度は頭を悩まし、効率化を追求したくなるステップかと思います。 python-lambda-local と組み合わせることで python-lambda-local を使ってローカル環境で開発 lambda-uploader で AWS Lambda にデプロイ という AWS Lamb
2020/02/01 追記 [コード付き]誰も知らない関連銘柄を、機械学習を使って素早く見つける こちらに最新の結果を載せました! 気づいたんですけど、私みたいな貧乏人はショッピングモールでおしゃれなゴミをせっせと買い漁るんですが、お金持ちの人って株を買うらしいんですよね。 考えてみれば貧乏人が欲しがるものって、百均のちょっとしたものから家や車やバイクやゲーム機など、買ったらお金が減るものばかりなんです。 それに比べて、お金持ちが買うものって、株や投資用の土地や、リスクこそあるものの貧乏人が欲しがらないわりに買ったらお金が増える可能性のあるものばかりなんですよねー。 これは悔しい!休日になるたびにせっせとショッピングモールにお金を運んでゴミを買い漁ってる自分を見てお金持ちはきっと笑っているに違いない!いやお金持ちには自分のような人間は視界にすら入らないのか、これはさっそく株を買わないと!と
データ分析の会社に転職してから3ヶ月。 最初の1ヶ月はPandasの扱いに本当に困ったので、 昔メモしてたことを簡単にブログに記録しておく(o ・ω・)ノ 【追記】2017/07/31 0:36 データが一部間違ってたので修正しました Pandasとは pandasでよく使う型 テストデータについて 余談 Pandasでのデータ操作入門 pandasのload データ(csv)のロード データのサイズ データのカラム 行列から必要な列(カラム)を取り出す 条件にマッチするデータを取り出す 1. DataFrame.queryで取り出す True/FalseのSeries型を指定し、Trueの行だけを取り出す 追記(2017/12/14) 行列から必要な行番号を指定してを取り出す グループ分けと集計 新たな列を追加する 固有値を追加する 他の列を加工して新たな列を作る 他の複数列を加工して新
こちらの続き。 上の記事では bool でのデータ選択について 最後にしれっと書いて終わらせたのだが、一番よく使うところなので中編として補足。 まず __getitem__ や ix の記法では、次のような指定によって 行 / 列を選択することができた。 index, columns のラベルを直接指定しての選択 index, columns の番号(順序)を指定しての選択 index, columns に対応する bool のリストを指定しての選択 ここでは上記の選択方法をベースとして、ユースケースごとに Index や Series のプロパティ / メソッドを使ってできるだけシンプルにデータ選択を行う方法をまとめる。 補足 一部の内容はこちらの記事ともかぶる。下の記事のほうが簡単な内容なので、必要な方はまずこちらを参照。 簡単なデータ操作を Python pandas で行う - S
import numpy as np import pandas as pd cols = ['var1', 'var2', 'var3', 'var4'] df1 = pd.DataFrame(np.random.randn(4, 4), columns=cols) df2 = pd.DataFrame(np.arange(16).reshape(4, 4), columns=cols) df1 var1 var2 var3 var4 0 -0.083782 0.964222 0.832664 -0.528963 1 0.017696 0.144067 0.093823 0.147779 2 -0.082808 -0.893112 -0.477983 -0.623641 3 0.581019 -1.603081 -0.717007 0.849844 df2 var1 var2 var3
import numpy as np from keras.datasets import mnist from keras.models import Sequential from keras.layers.core import Dense, Activation, Flatten from keras.layers.convolutional import Convolution2D, MaxPooling2D from keras.layers.normalization import BatchNormalization from keras.utils import np_utils from keras.optimizers import Adam import keras.callbacks import keras.backend.tensorflow_backend
【最終更新 : 2017.12.17】 ※以前書いた記事がObsoleteになったため、2.xできちんと動くように書き直しました。 データ分析ガチ勉強アドベントカレンダー 17日目。 16日目に、1からニューラルネットを書きました。 それはそれでデータの流れだとか、活性化関数の働きだとか得るものは多かったのですが、Kerasと言うものを使ってみて、何て素晴らしいんだと感動してしまいました 今まで苦労して数十行書いていたものが、わずか3行で書ける! 正直、スクラッチで書く意味って、理解にはいいけど研究や分析には必要あんまないんですよね。車輪の再発明になるし。 と言うわけで、使えるものはどんどん使っていこうスタンスで、今日はKerasの紹介です! Tutorial+気になった引数を掘り下げて補足のような感じで書いています。 ちなみに、各部のコード以下をつなぎ合わせるとmnistの分類器が動くよ
Pythonを使ってこの方さまざまな点につまずいたが、ここではそんなトラップを回避して快適なPython Lifeを送っていただくべく、書き始める前に知っておけばよかったというTipsをまとめておく。 Python2系と3系について Pythonには2系と3系があり、3系では後方互換性に影響のある変更が入れられている。つまり、Python3のコードはPython2では動かないことがある(逆もしかり)。 Python3ではPython2における様々な点が改善されており、今から使うなら最新版のPython3で行うのが基本だ(下記でも、Python3で改善されるものは明記するようにした)。何より、Python2は2020年1月1日をもってサポートが終了した。よって今からPython2を使う理由はない。未だにPython2を使う者は、小学生にもディスられる。 しかし、世の中にはまだPython3に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く