機械学習を使って株価を予測する非常に簡単な方法

機械学習を使って株価を予測する非常に簡単な方法

[[336572]]

この記事では、H2o.ai フレームワークを使用した機械学習を使用して R 言語で株価を予測する手順を段階的に説明しました。 このフレームワークは Python でも使用できますが、私は R に慣れているため、このチュートリアルでは R 言語を使用します。 「人工知能を使って株価を予測するにはどうしたらいいのだろう?」と疑問に思ったことがあるかもしれません。その手順は次のとおりです。

  • 情報を収集する
  • データのインポート
  • データのクリーニングと処理
  • テストとトレーニングの観察を分ける
  • モデルを選択
  • モデルのトレーニング
  • モデルをテストデータに適用する
  • 評価結果
  • 必要に応じてモデルを強化する
  • 結果に満足するまで、手順 5 から 10 を繰り返します。

前回の記事では、Plotly ライブラリを使用して高頻度データをプロットする方法を示し、分析のためにデータを収集する方法を説明しました。 リストのステップ 3 に直接進みましょう。ステップ 1 と 2 の実行方法を知りたい場合は、前の出版物を参照してください。

私たちの研究の質問は、「今後 1 時間の資産の終値はいくらになるか」です。

データクリーニング

MetaTrader を使用して予測する資産のデータをインポートした後、いくつかの変数を変更する必要があります。 まず、変数の名前を定義します。

  1. #名前の設定 変数
  2.  
  3. col_names <- c( "日付" "始値" "高値" "安値" "終値" "ティック" "出来高" )
  4.  
  5. colnames(データ) <- col_nameshead(データ)

データは次の形式になります:

> データ — 著者による画像

利用可能な変数のうち、始値、高値、安値、終値、およびボリュームのみを使用します。 このようにして、他者を排除します。

  1. data$日付<- NULL  
  2.  
  3. データ$ティック <- NULL  

次の観測値の終値を知りたいので、次の値を1行上に移動する必要があります。 これを行うには、関数を作成し、元のデータセットに新しいデータを含む変数を作成します。

  1. # 指定された変数nを上にシフトするshift <- function (x, n) { c(x[-(seq(n))], rep(NA, n))}data$shifted <- shift(data$ Close , 1)tail(data)

> データ — 著者による画像

上記の最初の行で変数 Close の値を割り当てたことに注意してください。 この方法では、最後の行に NA があり、na.omit() 関数を使用してその行を省略します。

  1. #NA 観測データを削除 <- na.omit(data)write.csv(data, "data.csv" )

完璧です。モデリングを開始するためのデータが準備できました。

データの分割

この問題では、人工知能モデルを分析およびトレーニングするための完全なソリューションを提供する H2O.ai というソフトウェア パッケージを使用します。 ユーザーフレンドリーな構造により、データサイエンスの知識がない人でも複雑な問題を解決できます。 まずライブラリを環境にロードしましょう:

  1. #パッケージのインストールinstall.packages( "h2o" )#ライブラリの読み込み library(h2o)

インストールしてロードしたら、モデルを構築するための基盤として使用される仮想マシンを起動します。 仮想マシンを起動するときに、必要なコア数とメモリ パラメータを設定する必要があります。

  1. #すべてのスレッド (-1)16 GBメモリを使用して仮想マシンを初期化しますh2o.init(nthreads = -1, max_mem_size = "16g" )

データをインポート:

  1. h2o.importFile( "data.csv" )h2o.describe(データ)

> データを水に変える — 著者による画像

ここで、データセット内で予測する変数と、モデルを「教える」ために使用される変数を定義します。

  1. y <- "shifted" #予測たい変数x <- setdiff(names(data), y)

次に、トレーニング データの 80% の比率でデータをトレーニングとテストに分割します。

  1. パーツ <- h2o.splitFrame(データ、.80) トレーニング <- パーツ[[1]] テスト <- パーツ[[2]]

データをセグメント化した後、H2O.ai パッケージの驚くべき部分に進みます。

モデルを選択

すべてのデータ サイエンティストが機械学習プロジェクトを作成するときに実行する必要があるタスクの 1 つは、予測を行うための最適なモデルまたはモデル セットを決定することです。 特定のタスクに最適なものを選択するには、多くの知識、特に数学の確固たる基礎が必要です。

H2O.ai パッケージを使用すると、他の懸念事項にも対処しながら、最適なモデルを選択するように要求できます。 これを自動モデリングと呼びます。 明らかに、この種の魔法は問題を解決する最も効率的な方法ではないかもしれませんが、良いスタートです。

モデルのトレーニング

モデルを作成するには、automl 関数を呼び出して、次のように必要なパラメータを渡します。

  1. オートモデル <- h2o.automl(x, y, トレーニング, テスト, max_runtime_secs=120)

数分後には、パフォーマンス別に分類されたモデルのリストが表示されます。 詳細については、下記までお電話ください。

オートモデル@リーダー

> モデルの説明 — 著者による画像

アプリケーションモデル

リーダーができたので、それをテスト データに適用してみましょう。モデルがまだ観測していないデータを使用してパフォーマンスを評価するので、ここが面白いところです。

モデルとテスト データを引数として、予測関数を呼び出します。

  1. 予測 <- h2o.predict(automodel@leader, test)

結論は

この記事では、資産の財務データを処理および操作し、データを分析してから 1 時間以内に終値を予測する機械学習モデルを簡単に作成する方法を説明しました。

モデルの評価と最適化については次の記事で説明します。

ではまた来週!

<<:  AIの力を借りれば、罠だらけのジムは歴史の舞台から消えるのでしょうか?

>>:  スマートワーク: AI がリモートワークをどう変えるのか

ブログ    

推薦する

NeuRAD: 自動運転のためのニューラル レンダリング (複数のデータセットでの SOTA)

論文「NeuRAD: 自動運転のためのニューラル レンダリング」は、Zenseact、チャルマース工...

5つの異なるタイプの人工知能

近年、人工知能は、データから洞察を引き出すことに関する企業の考え方を一変させました。ほとんどの人はこ...

マイクロソフトCEOナデラ氏との対談:AIは雇用を奪うよりも多くを創出する

マイクロソフトのCEOに就任して以来、サティア・ナデラ氏はマイクロソフトを改革した英雄とみなされてき...

脳も分散強化学習を使用しているのでしょうか?ディープマインド社の新しい研究がネイチャー誌に掲載

分散強化学習は、囲碁やスタークラフトなどのゲームでインテリジェントエージェントが使用する手法ですが、...

貨物ドローンは宅配業界に革命を起こす:より重い荷物を運び、より遠くまで飛ぶ

貨物ドローンは、高効率、環境保護、低コストなど、多くの利点を備え、宅配業界に革命をもたらそうとしてい...

デジタルセンサーを使用してピンホールカメラを作るにはどうすればいいですか?

ビッグデータダイジェスト制作出典: IEEE近年、ピンホール写真に対する人々の関心は年々高まり、関連...

...

量子コンピューティングの巨匠アーロンソンが OpenAI に加わりました!彼はまた、ヤオクラスのトップ生徒である陳立傑の家庭教師でもある。

国内企業の大物たちが次々と退職し、大学へ移ったり、起業したりしている。違うのは、量子コンピューティン...

人工知能に関する3カ年国家戦略が発表されました。8つの主要分野が注目されます。

昨日、工業情報化部が突然、人工知能に関するもう一つの重要な赤字文書を発行しました!文書では、2018...

ロボットインテリジェント把持システム:いくつかの主流ソリューション

ロボット学習における典型的な問題の 1 つは、分類、つまり乱雑に積み重なったアイテムの山から目的のア...

テクノロジーファイナンスからスマートファイナンスまで、民生銀行の革新的な人工知能の応用をご覧ください

[51CTO.comからのオリジナル記事] 「インターネット+」から「インテリジェンス+」まで、革新...

機械学習の実際の応用は何ですか?

簡単に言えば、機械学習とは、非常に複雑なアルゴリズムと技術に基づいて、人間の行動を無生物、機械、また...

...

...