に組み込まれているモデルを使用して、非常に大きなファイルをスコアリングしたいと考えていますR
。
アイデアは、R モデル オブジェクトから実際の予測方程式を抽出し、方程式を含む python 文字列を定義することです。
大きな予測子ファイルの予測子ヘッダーには、モデルの構築に使用されたものと同じ予測子名があります (モデル開発およびモデル スコアリング予測子は、同じ Python コードを使用して生成されました)。
Python で大きな予測子ファイルをスコア付けしたいと思います (これにより、R 処理を可能にするために予測子ファイルを分割/チャンクする必要がなくなりR
ますpredict
。
だから私はチェックしました PythonでPythonコードを含む文字列を実行するにはどうすればよいですか? と他の投稿。eval
Python コミュニティではとが嫌われているためexec
、csv ファイルに格納された一連の予測子に方程式を動的に適用する最も Pythonic な方法は何だろうと考えています。ありがとう。
import csv
import StringIO
predfile = StringIO.StringIO(
'''x1,x2
1,2
3,4''')
eq = '1 + 2*x1 + 3*x2'
reader = csv.reader( predfile , delimiter=',' )
header = reader.next()
for row in reader:
exec("{0}={1}".format(header[0],row[0]))
exec("{0}={1}".format(header[1],row[1]))
exec("yhat={0}".format(eq))
print yhat