我想使用内置的模型对非常大的文件进行评分R
。
这个想法是从 R 模型对象中提取实际的预测方程,并定义一个包含该方程的 Python 字符串。
大型预测器文件的预测器标头具有与用于构建模型的预测器名称相同的预测器名称(模型开发和模型评分预测器是使用相同的 python 代码生成的)。
我想用 python 对大型预测器文件进行评分(从而避免需要拆分/分块预测器文件以允许 R 处理,即使R
'spredict
函数确实是一个有吸引力的替代方案)。
所以我检查了如何在 Python 中执行包含 Python 代码的字符串?和其他帖子。由于eval
并且exec
在 python 社区中不受欢迎,我想知道将方程动态应用于存储在 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