スパイシーな日常をかみしめる

理系大学院生のほんのちょっと変わった日常

#15 pythonで競馬に勝つ!序章

Python をギャンブルに使いたいと思います。
4月までにプログラムを作り上げて評価しておきます。

具体的に何がしたいのか
目的:競馬の勝つ馬を予測する

Pythonも全くの初心者なので、難易度とかは知らないですが、これぐらいならできそうですね。




手段
1、全ての馬のデータを入れる。

やり方はスクレイピング?手作業?
この辺はわからないけど、挑戦します。

スクレイピングとは、
自動でWebサイトから情報をインプットすることです。



2、1で入力したデータの中で、
どの要素か勝つことの高い相関を持つのか分析する。

例えば、遺伝子?過去の同じ会場での実績?最近の実績?レーン?季節?時間帯?

やり方は重回帰分析かな?
これにより、モデルを作成しましょう。
各会場毎のモデルになりそう。




3、最後は、出場する馬の各データを入れると勝つ確率順に並び替えてくれるプログラムの作成 





実際のプログラムのイメージ
データ収集が終わり、データのクレンジング(悪いデータを抜くこと)も終わってるとします。 
つまり関数のモデルとして出来上がっている

1、インプットで要素を入力させる。
会場や、要素、季節、時間帯などの入力を促す。

2、機械がどの目的関数を使用するかを決め、
各馬にたいして目的関数の結果を出力する。

3、最適化問題のように、この中で目的関数の値が最大となるものを選ぶ。

4、出力される文字は以下のようにします。笑

各レーンの情報を入力してください。

各レーンの馬の勝率は...
1レーン:
2レーン:
‥‥‥

各買い方の期待値は‥‥ 
3連複 をおすすめします。‥‥


ってなってくれたら嬉しいですね笑




このプログラムの悪い点は、
・毎レース毎、競馬の新聞のデータを入力ないといけないため手間がかかる。
→ここでもスクレイピングを使えたらいいかも。

・会場を絞る必要がありそう。
・遺伝子の情報は親の勝率とか?

 



理想は、、
どの買い方をしたら、いちばん儲かるのかを教えてくれるところまでやりたい。 

それぞれの馬の勝率がわかるので、
そこから各買い方の確率を計算し、期待値を出す。
 
例えば、これを携帯アプリにしてしまえば
簡単に予測が出来るという夢がありますね。




3月末までに必ず実行します。
少々お待ちください。急ぎの方はコメントしてください。

#14 1万円以下の少額投資をしている方へ

#大学生 #少額投資 #株式投資 #素人 #単元未満株


いままで、SBI証券の単元未満株をしてきました。

しかし気づいてしまいました‥‥
儲からない!!
同様の考えを持つ人もいらっしゃると思います。

そんな人へ僕なりの改善策を提案します。



まず儲からない原因
1.利益率が高くても利益の少なさ
僕の場合だと、5000円ほどから買ったため、
20%の上昇が起きたとしても1000円にしかならない!


一般に株を買うときは、
分散投資をするので全ての株価が上昇するとは限らないため期待される利益はもっと低くなると思います。


2.単元未満株のため、売買にタイムラグが生じる

僕は、スイングトレードでおこなってました。
この理由は、次の3つです。
スイングトレードの方が儲かる
・たくさん売買する方が楽しい
・時間に余裕があるのでそれを生かしたい

しかし単元未満株の欠点として、
売買の即効性にかけるということが上げられます。

そのため、どれだけ15分チャートを確認して、MACDで売買タイミングを知ったとしても
売買ができるのは、数時間後となってしまいます。

そのタイムラグの間にリスクが出来てしまいます。



提案する改善策
1.元手の上限を上げる
2.中期投資に切り替える

この2つを同時に実行してみようかと思います。

僕の場合は、今まで安定企業を買うことはせず、
株価の上昇率のランキングから企業を買っていました。なぜなら、安定企業の株は変動が小さいため大きな収益につながらないと考えていたからです。

しかし中期投資に切り替えるのであれば、
リスクの比較的低い企業を選ぶべきなので
選び方は変わってきます。

その場合、利益率の低さを元手の多さで補わなければならないため、自然と元手は多くなります。

これにより、気にする必要のあるチャートが1日足や週足に変わるため単元未満株の欠点を補えるようになります。




結論

(少額利益×高い回転率)<(多額利益×低い回転率)

後者で儲けるほうが、
単元未満株を使用している人には適切だと思います。

楽しさを捨てて、心を無にして投資することになりそうです。

#13 Python初心者がProgateを1通り終えてみた結果

#python #プログラミング初心者 #Progate 成長記録

 

 

11月終わりに本格的にPyhonを学ぼうと決意し、やっとProgateが終わりました。笑

Progateをする前にしたことは、次の2点です。

Youtubepythonの動画を見たこと、②Learn Pythonというアプリで少しかじった

これを踏まえて読んでください。

 

 

f:id:koki-miyagawa-0603:20181221020416p:plain

 

ここでは、

①Progateの効果

②次に使う教材

について話していこうかとおもいます。

 

①Progateの効果

Progateを終えるのにかかった時間:1日(実質12時間くらい)

Progateの費用:月額980円

 

このように12時間に対して1000円払ったようです。

 

レッスンは全部でⅠ・Ⅱ・Ⅲ・Ⅳ・Ⅴの5つあります。

 

Ⅰ:四則演算や条件分岐

Ⅱ:リストや辞書やループ

Ⅲ:関数やモジュールやライブラリ

Ⅳ:クラスやインスタンス

Ⅴ:クラスの継承

 

このような中身になってました。

僕にとっては、レッスンⅢからは初見の知識が増えていきました。

レッスンⅣやⅤについては、すこし難しく感じました。

特に、インスタンスの値を用いるときに

インスタンス.インスタンス変数名

とするのがよくわかっていません。

 

この辺はもう少し復習が必要だなと感じました。

 

総じて、説明は分かりやすいです。

そのため、初心者に十分におすすめできます。

 

しかしまだ僕ののやりたいコードを書くことはできないので、

次のサイトをつかって学習します。

 

 

②次に使う教材

以下の4つが興味をひかれたものです。

選んだ基準は

実際に手を動かしながら学べる/脱初級

 

続きを読む

#12  python初心者はこれを知らなきゃ損!!#最短独学プログラマー#Progate

Progateっていうサービス知ってますか?

 

友達から

python学習したいならProgateがいいよ」

との一言をいただき、疑心暗鬼ながら始めてみました。

 

Progateとは?

月額980円であらゆるプログラミング言語の基礎を学べるサービスです。

あらゆるとは、、、

f:id:koki-miyagawa-0603:20181220045703p:plain

 

この中に気になる言語はあると思います。

 

僕がいま学習しているpythonに対しては、

1コースを修了するのに約2時間かかる学習コースが、全5コースあります。

 

各コースでは、指示されたプログラムを自分で作っていきます。

web上でプログラムの編集から実行にいたるまで行えるため、

pythonを自分でインストールする必要はないです。

 

実際のコースの内容

前回紹介したアプリの learn pyhon と比較すると

果物の購入の場合のプログラムなどといった

現実の問題に近いことを題材にしているため理解しながら進めると思います。

 

1つ1つのコマンドとして覚えるのではなく

目的を達成するための手段としてコマンドを覚えることができるため

コースを修了した後に、実務への適用がしやすいと思います。

 

結論

月額980円なので満足いくまで学習して、

1ヶ月でやめることを考えると十分すぎるほどお得だと思います。

 

またその他のメリットは、

ひとつの言語のみではなくその他の言語に関しても

簡単にアクセスできるためすごく便利なものといっていいでしょう。

 

 

 

 

 

#11 QQEnglishのカランメソッドをオンライン英会話で受講してみた

 

カランメソッドって知ってますか?

 

カランメソッドとは?

なんと通常の4倍の速さで英語が上達できるといわれている英語学習法です

 

平均的な学生がケンブリッジ英語検定試験(PET)のレベルに到達するまでに、

通常は350時間が必要といわれるが、Callanメソッドを使用すると80時間で済むそうです。

またケンブリッジ試験準備(FCE)レベルへの到達時間は、約160時間だそうです。

Japanese Preface | Callan Method Organisation

 

ちなみに

PETレベルは、TOEICだと600点くらいです。IELTSなら5.0くらいです。

FCEレベルは、TOEICだと800点くらいです。IELTSなら6.0くらいです。

 

これがオンライン英会話で受けることができます。

QQEnglishやネイティブキャンプといった会社は取り入れてます。

価格は、毎日1授業(25分間)でおよそ10,000円です。

 

つまり現在の実力はともかくとして、

1年間オンライン英会話でカランメソッドを受講すれば、

0.5時間×365日=182.5時間

なので、IELTS6.0レベルに到達することができます。

(2019/12/31までにIELTSテストを受けてみようと思います。)

 

 

特徴

①先生が通常の1.2倍の速さで話す

②生徒は先生からの質問に即答する

③その時に文字を省略することなく完璧なセンテンスでこたえないといけない

 

これらにより、

なんと英語を話すときに日本語で話す癖がなくなり

英語脳が鍛えられるというものらしいです。

 

授業の進め方

先生がイラストを指しながら、単語や言い方を練習してから

そのフレーズを使った質問に答えるというものです。

 

例えば、penのイラストを指差しながら

Is this a book? Is this a book? 

と2回質問されたら

No. It is'nt a book. It's a pen

と答えながら進んでいきます。

初回なので1番簡単なレベルです。

 

でもこのスピードがめちゃくちゃ速いです。笑

日本人が想像する最高速度を超えてきます。笑

 

確かに日本語の脳を使いません。

というか、内容については使うほどの難しさはないため

機械のように話すだけです。

また速い英語を聞くため、

リスニングスキルはあがると思われます。

 

 

結論

通常のDMMのような楽しいオンライン英会話ではなく

このような英語脳を鍛えるというものを選択してみました。

このやり方の是非は分かりませんが、

こちらで続けてみようかと思います。

 

 

 

 

 

#10 エクセルで不連続な関数(階段関数)を作る方法!

エクセルで連続な関数を作る方法!下の関数が作れますか?

この中学のときに習った関数の名前は階段関数という名前らしいです。 

これを作って生きたいと思います。(所要時間10分)

f:id:koki-miyagawa-0603:20181215204638p:plain

階段関数(https://ja.wikipedia.org/wiki/%E9%9A%8E%E6%AE%B5%E9%96%A2%E6%95%B0

 

大まかな流れを説明します。

手順①3つのパートに分けて座標を書く(青線部分,

手順②それぞれにたいする散布図を作成する

手順③プロット同士を線で結ぶ(青線部分)

手順④線,の色を作成する

手順⑤軸の位置を下にかえる

完成!!!

 

 

手順①3つのパートに分けて座標を書く(青線部分,○,●)

まずこの図を青線部分と部分と部分の3つのグラフを合体させたグラフと考えます。使うグラフは散布図のみです。

このように1つのx座標にたいする3つのy座標の値を入力します。

ポイント

グラフ上で0、0.5、1に対してそれぞれ2つのy座標が取れるため2つとも書きます。

 

f:id:koki-miyagawa-0603:20181215205512p:plain

座標の入力

 

 

手順②それぞれにたいする散布図を作成する

手順①で作成した座標をグラフ化する。

ここでやり方は2通りあります。

 

ひとつは、

(青線部分の散布図)(○部分の散布図)(●部分の散布図)の

3つのグラフを作成した後、コピー&ペーストで合体させる方法

ふたつめは、

はじめから1つのグラフを作る方法

 

ここではふたつ目に関して行います。

全体を選択した後にツールバーの挿入→散布図のマークで出来上がります。

 

 

手順③プロット同士を線で結ぶ(青線部分)

今は3つのグラフが点の状態になっているので、線のグラフを作成します。

ポイント

グラフを選択しながら、ツールバーのグラフのところにある下矢印から行います。

グラフの種類の変更を選択し、下のように変更します。

 

f:id:koki-miyagawa-0603:20181215210357p:plain

 

 

手順④線,の色を作成する

まだそれぞれのプロットの色や丸の記号が異なるため、

修正していきます。

グラフ上で変更したいものの上で右クリックします。

そこから書式設定に入ります。

 

ならば、

枠線を黒色にし、塗りつぶしを白色にします。

ならば、

枠線と塗りつぶしをともに黒色にします。

線ならば、

使用する部分は色を黒くし、

使用しない部分は色を無くします。

 

f:id:koki-miyagawa-0603:20181215211012p:plain

 

手順⑤軸の位置を下にかえる

現在、軸が中央に配置されているため

軸の位置を修正したいと思います。

軸上で右クリックし、軸の書式設定を行います。

そのなかの軸ラベルの位置というところから変更が可能です。

 

f:id:koki-miyagawa-0603:20181215211132p:plain

 

完成

最終的に、

軸の書式設定より目盛りの範囲を変更したり、

グラフのタイトルなどを非表示とするなどしました。

手間のかかる方法ですので、よりよい方法がわかりしだい訂正します。

 

f:id:koki-miyagawa-0603:20181215211149p:plain

 

 

 

# 9 初心者がアプリでpython学習してみた!

#python #パイソン #学習アプリ #初心者#learnpython #独学

やっとpythonについて書きます笑

先日pythonを始めました。初心者です。

そこで、独学でpythonを勉強するための
手段を思考錯誤の最中ですが
携帯アプリがいいのではないかと思いました。

無料の携帯アプリであるLearn pythonを使い始めてみました。
以下のように感じました!



メリット
1、ゼロから始めれる
2、網羅的に学べる
3、飽きにくい


デメリット
1、日本語の教材がそろってない
2、時間がかかる
3、ライブラリの知識が足りない


メリット

1、ゼロから始めれる

独学で始める人にとっては、ここが最も大事だと思います。
pythonをインストールしたけど、なにから始めていいかわからないと思います。
そんな時にprint関数から教えてくれる教材はとても親切だと思います。


2、網羅的に学べる

2も1と同じニュアンスに思われると思いますが、
ここでは、特定の分野を覚えるのではなく学べるって意味です。
なぜなら、知らないことは使えないからです。
例えば、皆さんもExcelは使ったことあると思いますが、
私も含めExcelのもつ能力の一部しか使えていない人がほとんどだと思います。

実はこれって、
Excelとかプログラミングだと不便ですよね。
だって、1つの関数を知っていれば1行ですむ話なのに、
手作業でやるはめになりますよね。


3、飽きにくい

これは、ゲーム感覚で進められるので飽きにくいということです。
人によりますがね笑

Learn pythonでは、
コマンドだけ与えられていてそれに対する出力結果を入力したり、
その逆パターンもあるので、なかなか楽しめます。

デメリット

1、日本語の教材がそろってない

Pythonは世界では流行ってますが、日本ではそこそこです。
なぜなら日本には日本生まれの可読性の高い言語であるRubyがあるからです。

そのため、youtubeなどでも日本語でpythonについての動画を作っている人は比較的少ないです。

紹介している携帯アプリであるLearn pythonも英語です。
だから、わからない単語がある時は翻訳を使ってます。
でもコマンドだけを読みながら進めていってもだいたい理解できます。


2、時間がかかる

どうしても特定の仕事をしてくれるコマンドを作るのと比較すると、
時間はたくさんかかりそうです。


3、ライブラリの知識が足りない

最後は、pythonらしくいきました。
パイソンの良さって、
モジュール、パッケージ、ライブラリと呼ばれる先人が作った関数を使えることだと思います。
でもこれをすべて携帯アプリで教えるのは無理なので、一部しかありません。
もし自分のやりたいことが別のライブラリを使うのであればその都度調べる必要がありそうです。


最後に、

Pythonを一緒にがんばりましょう!
まだまだ私も初心者で素人ですので、
コメント欄でアドバイスをしていただけるとうれしいです。