我将数据框的两列分开以分别用作特征和标签:
const Typed = (key, type, parent = class {}) => class Typed extends parent {
constructor(...props) {
super(...props);
this[`_${key}`] = new type();
}
get [key]() { return this[`_${key}`]; }
set [key](value) {
this[`_${key}`] = value instanceof type ? value : Object.assign(new type, value);
}
}
const A = Typed("foo", Foo, Typed("bar", Bar, class {
//...
});
但是我必须将获得的一维数组(具有shape =(n,))整形为形状(n,1),以便它可以被return.fit()函数接受:
X = bmi_life_data['BMI']
y = bmi_life_data['Life expectancy']
否则我会收到错误消息:
X = X.values.reshape(len(X), 1)
在定义X时,我也可以在现场重塑形状,但几乎相同。我认为此重塑步骤很繁琐,因此我认为必须有更好的方法。我试图找到它,但是发现的只是矩阵和一维数组之间的区别,这是有用的信息,但确实回答了我的问题。
答案 0 :(得分:0)
这应该有效:
X = bmi_life_data[['BMI']]
y = bmi_life_data[['Life expectancy']]