Python实现KNN时出现x_test未定义错误,求排查解决
KNN算法实现中的变量未定义问题修复
问题根源及修复点:
- 数据集拆分赋值错误:你在使用
train_test_split时,把返回的四个结果重复赋值给了x_train和y_train,导致根本没有生成x_test变量,这是报错的核心原因。正确的赋值应该包含x_test和y_test。 - 特征提取语法错误:
x= data_set.iloc[:,[2,3]].valuesS这行里多了个大写字母S,应该改为values。 - 标准化阶段的变量引用问题:因为前面没生成
x_test,所以后续调用st_x.transform(x_test)时会触发未定义错误,修复拆分代码后即可解决。
修正后的完整代码:
import pandas as PD import numpy as np import matplotlib.pyplot as mtp data_set= PD.read_csv('hw6.data.csv.gz') # 修正valuesS为values x= data_set.iloc[:,[2,3]].values y= data_set.iloc[:, 4].values from sklearn.model_selection import train_test_split # 修正变量赋值,生成x_test和y_test x_train, x_test, y_train, y_test= train_test_split(x,y, test_size=.25, random_state=0) from sklearn.preprocessing import StandardScaler st_x= StandardScaler() x_train= st_x.fit_transform(x_train) # 现在x_test已定义,可正常执行转换 x_test= st_x.transform(x_test)
内容的提问来源于stack exchange,提问作者Jazzmine McLeod
相关产品推荐
相关产品推荐

