我正在尝试运行代码以使用 Graphlab 框架在 python 中使用坐标下降来执行套索回归。
我写的代码如下:
l1_penalty = 1.4e8
ro = []
for i in range(0,3):
ro.append((simple_feature_matrix[:,i]*
(output - prediction + weights[i]*[simple_feature_matrix[:,i]])).sum()
)
print ro
if i == 0:
weights[i] = ro[i]
elif ro[i] < -l1_penalty/2.:
weights[i] = ro[i] + l1_penalty/2
elif -l1_penalty/2 <= ro[i] <= l1_penalty/2:
weights[i] = 0
elif ro[i] > l1_penalty/2:
weights[i] = ro[i] - l1_penalty/2
print weights
print
output
, prediction
, weights
,simple_feature_matrix
都是 numpy 矩阵。
我正在研究一个数据集,该数据集具有基于某些特征(如居住面积平方英尺等)的某个地区的房屋销售价格。
simple_feature_matrix
是仅具有其中两个功能的 numpy 销售矩阵。
output
是一个仅包含“价格”的矩阵。
prediction
是一个包含我使用函数计算的预测价格的矩阵。
weights
是一个矩阵,其中包含的两个特征具有权重simple_feature_matrix
。
当我运行此代码一次时,我得到一个输出,但是,在同一个内核中第二次运行它会给我以下错误: 第二次运行代码时收到错误
<somepath>/Anaconda2/<somedirectories>/ipykernel/__main__.py:4:Depreciation Warning: using a non-integer number instead of an integer will result in an error in the future.
------------------------------------------------------------------------
Memory Error Traceback (most recent call last)
<ipython-input-11-15979f5790d6> in <module>()
2 ro = []
3 for i in range(0,3):
---> 4 ro.append((simple_feature_matrix[:,i]*(output - prediction + weights[i]*[simple_feature_matrix[:,i]])).sum())
5 print ro
6 if i == 0:
MemoryError:
没有给出进一步的解释,它只是说有一个内存错误。谁能解释为什么会这样?