KDB使用EmbedPy调用LogisticRegression的fit方法报缺少位置参数y错误
问题原因分析
1. 本次报错的直接原因
你调用fit方法的逻辑存在错误,和reshape调整维度无关:
sklearn中的LogisticRegression是类对象,你需要先实例化类得到模型实例,再调用实例的fit方法。你当前直接用类对象调用fit方法时,Python会要求第一个参数必须是类实例(即self参数),你传入的train_X_np会被识别为self,train_Y_np被识别为X参数,自然缺失了要求的y参数,触发当前报错。
2. 维度调整的作用说明
reshape(-1,1)调整维度不是本次报错的原因。本次报错修复后你才会遇到维度相关的报错:sklearn要求fit方法传入的特征矩阵X必须是二维数组,你当前构造的train_X_np是一维数组,此时会触发Expected 2D array, got 1D array instead的报错,这时才需要调用reshape调整维度。
正确可运行的代码示例
\l p.q np:.p.import`numpy // 导入LogisticRegression类 LogisticCls:.p.import[`sklearn.linear_model;`:LogisticRegression] // 先实例化类得到模型实例 lr: LogisticCls[] // 构造特征数组并调整为二维 train_X_np: (np[`:array] 1 2 3)[`:reshape][-1;1] train_Y_np: np[`:array] 0 1 1 // 调用实例的fit方法 lr[`:fit][train_X_np;train_Y_np]
内容的提问来源于stack exchange,提问作者cjm2671
相关产品推荐
相关产品推荐

