已导入sklearn库仍报'name sklearn is not defined'错误的排查
问题原因与解决办法
错误原因
你只导入了sklearn的子模块(linear_model、utils),但代码里直接使用sklearn.model_selection.train_test_split调用函数——当前代码的命名空间里并没有sklearn这个顶级模块的引用,只有你显式导入的子模块,所以触发了NameError。
解决方法
有两种可行的修复方式:
方法一:直接导入目标函数
在代码开头的导入部分添加一行:
from sklearn.model_selection import train_test_split
之后调用时直接使用函数名即可:
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.1)
方法二:导入整个sklearn模块
修改导入语句,先导入顶级模块:
import sklearn from sklearn import linear_model from sklearn.utils import shuffle
这样就能保留原代码中sklearn.model_selection.train_test_split的调用方式。
推荐使用方法一,更贴合Python的导入规范,能避免引入冗余模块,减少命名空间冲突。
内容的提问来源于stack exchange,提问作者Fionn Lenaghan
相关产品推荐
相关产品推荐

