AI 株神: 機械学習を使って株価を予測するには?

AI 株神: 機械学習を使って株価を予測するには?

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)から転載したものです。

まず、この記事は H2o.ai 機械学習フレームワークの開始方法を示すだけであり、投資や財務に関するアドバイスを目的としたものではないことを強調しておきます。この記事のみに基づいて投資や財務管理の決定を行わないでください。

[[333548]]

この記事では、R 言語と H2o.ai 機械学習フレームワークを使用して株価を予測する方法を説明します。このフレームワークは Python でも使用できますが、著者は R 言語に精通しているため、この記事では R 言語を使用してデモンストレーションを行います。詳細な手順は次のとおりです。

  1. データの収集
  2. データのインポート
  3. データの整理と操作
  4. 分割テストとトレーニングの観察
  5. モデルを選択
  6. モデルのトレーニング
  7. モデルによるデータのテスト
  8. 評価結果
  9. 必要に応じてモデルを改善する
  10. 結果に満足するまで、手順 5 から 10 を繰り返します。

この論文で研究されている質問は、「今後 1 時間の株価の終値はいくらになるか」です。

データの照合

MetaTrader ソフトウェアを通じて予測したい資産のデータをインポートした後、いくつかの変数を変更する必要があります。まず、変数名を定義します。

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

データ形式は次のとおりです。


始値、最高値、最低値、終値、取引量など、利用可能なデータのみを使用するため、他のデータをクリアする必要があります。

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

次の観測期間の終値を知りたいので、次の値を前の行に移動する必要があります。関数を作成し、元のデータセットの変数を新しいデータで設定する必要があります。

  1. # 指定された変数の n 行を上にシフトする
  2. シフト< -関数(x, n) {
  3. c(x[-(seq(n))], 繰り返し(NA, n))
  4. }
  5. データ$シフト< -シフト(データ$Close, 1)
  6. 末尾(データ)

前の行で変数 ClosePrice に値を割り当てていることに注意してください。したがって、最後の行には NA があり、na.omit() 関数を使用してこの行をスキップします。

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

データの準備ができたので、モデリングを開始できます。

データの分割

[[333549]]

H2O.ai を使用したデータセグメンテーション。 H2O.ai は、人工知能モデルの分析とトレーニングのための完全なソリューションを提供します。使い方は非常に簡単で、データサイエンスの知識がなくても複雑な問題を解決することができます。まずH2O.aiをダウンロードします:

  1. #パッケージのインストール
  2. インストールパッケージ("h2o")
  3.  
  4. #ライブラリの読み込み
  5. ライブラリ(h2o)

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

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

データをインポート:

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

次に、データセット内で予測する変数と、モデルのトレーニングに使用する変数を定義します。

  1. y < - 「シフトされた」#予測したい変数
  2. x < - setdiff(names(data), y)

その後、データはトレーニング用とテスト用に分割され、80% がトレーニング データとして使用されます。

  1. パーツ< - h2o.splitFrame(データ、.80)
  2. 列車< -部品[[1]]
  3. テスト< -部品[[2]]

これらの手順を完了したら、H2O.ai が魔法を生み出す様子を見てみましょう。

モデルを選択

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

H2O.ai を使用すると最適なモデルを選択できるため、他の問題を解決するために時間を節約できます。これが自動モデリングです。これは問題を解決する最も効率的な方法ではないかもしれませんが、試してみる価値はあります。

モデルのトレーニング

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

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

数分後には、パフォーマンス順にランク付けされたモデルのリストが表示されます。


モデルの使用

これで、モデルを使用してデータをテストできます。また、モデルとテスト データを引数として predict 関数を呼び出すことで、モデルを使用して観測されていないデータでのパフォーマンスを評価することもできます。

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

さて、1時間待って、あなたの予測が当たるかどうか見てみましょう。

免責事項: この記事は投資アドバイスではありません。株価を予測するのは簡単な作業ではありません。この記事は、H2O.ai を使用して機械学習の問題を簡単に解決できることを単純に説明しています。株価の変動を予測するのは非常に簡単ですが、予測が常に正しい、または正確であるとは限りません。

<<:  Microsoft XiaoIce がスピンオフしました!沈向陽氏が会長に就任、「小氷の父」がCEOに就任、中国での事業化を目指す

>>:  人工知能の主な発展とその原動力

ブログ    

推薦する

Java プログラミング スキル - データ構造とアルゴリズム「循環リンク リストとジョセフ問題」

[[386837]]ジョセフ問題1、2、...n と番号が付けられた n 人が輪になって座り、番号...

自動車業界における人工知能の5つの主要な応用

[51CTO.com からのオリジナル記事] 自動車業界における人工知能の応用を考えるとき、最初に思...

...

テキストの説明に基づいてビデオから画像を切り取る、Transformer:このクロスモーダルタスクは私が最も得意とすることです

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

CTO は、企業開発のさまざまな段階で知的財産権の対応する全体像をどのように確立できるでしょうか?

最近、新しい「特許法」の全文が公布され、新たに改正された「著作権法」が公布されたことにより、国は知的...

強く連結されたコンポーネントを解決するための Tarjan アルゴリズムを実装する 20 行のコード

今日紹介するアルゴリズムは Tarjan と呼ばれていますが、これも非常に奇妙な名前です。奇妙なのは...

ASO チュートリアル: 評価とダウンロードの最適化と Google Play ストアのランキング アルゴリズム

この ASO チュートリアル シリーズを初めて読む場合は、最初の記事から始めることをお勧めします。 ...

知識が求められるポストディープラーニング時代において、知識グラフをいかに効率的かつ自動的に構築できるのでしょうか?

日常生活では、情報を提示する次の 2 つの方法によく遭遇します。表示される情報量はどちらも同じですが...

...

人工知能とデータセンター: AI がリソースを大量に必要とする理由

2023 年末までに AI 生成にどれだけのエネルギーが必要になるかについての予測は不正確です。たと...

NBA スターと機械学習が出会うと...

[[282801]]私はバスケットボールが好きです。私はバスケットボールをしたり、観戦したり、バス...

米国商務省は、生成型人工知能の潜在的なリスクに対処するために、公開AIワーキンググループを設立した。

6月25日、ジーナ・ライモンド米国商務長官は、国立標準技術研究所(NIST)が人工知能(AI)に関...

...

ロボットは独自の言語を作り、将来的には自律的にコミュニケーションできるようになるのでしょうか?

[[187107]]人工知能技術は飛躍的に進歩していますが、人工知能間のコミュニケーションの問題は...