我正在运行下面的代码,它在第一次迭代时运行正常,当第二次迭代启动时,它给了我一个关键错误。我注意到有一个字符串" L"第二次迭代开始时自动添加到密钥。 链接到我的代码:
Code for KNN having issues here
我正在使用的数据链接如下:
不确定为什么会这样。有人请让我知道导致问题的原因。非常感谢帮助!!
class A{
int id;
String nameA;
List<D> listOfDs;
}
class D{
int id;
String name;
}
答案 0 :(得分:0)
现在,我只关注您的get_numpy_data
定义,并认为它并不像您期望的那样有效。例如,行
features_train, output_train = get_numpy_data(df_housePrice_train, feature_list, 'price')
似乎修改了df_housePrice_train
。 output_train
成为包含字符串"price"
的np数组。
<强>更新强>
行distances = []
应该在函数compute_distances
内。此函数会在每次执行时将元素附加到distances
。接下来,将一些元素的索引(位置)应用于数据帧。在第一次执行时,一切正常,但后来列表增长,一些索引变大 - 超过数据框的大小。
更新2
为了完整性:KeyError: 6818L
表示长整数6818(L表示此处的类型)不是df_housePrice_train
中的有效密钥。
需要修改代码:
## KNN.py, line 61:
#distances = [] # <- delete this line
def compute_distances(features_instances, features_query):
distances = [] # <-- add here
# rest of the function body...