2017-10-09 13 views
0

私は列車ファイルが約8GBである機械学習線形回帰問題に取り組んでいます。線形回帰計算機巨大なデータを使ってモデルを学習する

私のTpは高い構成ですが、それはサポートしていません。したがって、トレーニングの目的でファイル全体を渡す代わりに、列車ファイルを 10/20ファイルに分割し、これらのファイルを1つずつモデルに訓練することはできますか?

このアプローチは機能するのでしょうか、またはデータ全体を1回でトレーニングする必要がありますか?

+0

あなたはより多くの情報を提供することができますか?何を試しましたか?なぜあなたは8GBファイルを実行できないのですか(これはほとんどの機械学習では比較的小さい)。あなたのマシンの学習には何を使用していますか?この情報は、私たちがより良い答えを与えるのに役立ちます、ありがとう! –

+0

私たちはどんな種類のデータを話していますか?サンプルを教えてください。あなたのマシンのスペックは何ですか?そして8Gbは非常に小さいデータセットではありませんが、それは巨大ではありません!チャンクで実行することは大したことではありませんが、まず情​​報が必要です。 –

+0

こんにちはスティーブ、私は線形回帰を使用して支払う金額の値を予測しようとしています。進める方法をお勧めしますか?以下のコードを見つけてください: –

答えて

0

はい、動作します。このようにするにはStochastic Gradient Descentと呼ばれ、データがメモリに収まらないときに訓練する標準的な方法です。

確率的な意味は「ランダム性」です。これは、すべてのデータの実際の勾配に従わず、一部のデータに基づいて勾配を近似するためです。正確な正しい方向に更新しているわけではありませんが、ステップサイズが十分に小さく、バッチが十分に大きければ、手順はまだまだ効果的です。

ただし、注意の言葉:各ファイルで順番に完了するようにトレーニングすることはできません。これを行うと、2番目のファイルをトレーニングすると、1番目のファイルで学習した値が忘れられます。

代わりに、データの「バッチ」と呼ばれるものについてトレーニングし、バッチごとに1つの更新ステップを実行する必要があります。

for file in files: 
    while not Model.stop_condition(): 
     Model.train_step(file) 

そして、これは良いです::

ので、これは悪いです

while not Model.stop_condition(): 
    for file in files: 
     Model.train_step(file) 
+0

こんにちはサム、ソリューションをありがとう。 .csvファイルを1つずつ読み込んでモデルを訓練する場合に参考になるコードを提供すると非常に役に立ちます。 –

関連する問題