md = dev_df['MD'].values.astype('float').reshape(1,-1)
tvdss = dev_df['TVDSS'].values.astype('float').reshape(1,-1)
model = linear_model.LinearRegression()
model.fit(md, tvdss)
f = model.predict(X)[0]
>>> model.coef_.shape
(78, 78)
>>> model.coef_
array([[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
...,
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.]])
>>> type(md)
numpy.ndarray
>>> type(tvdss)
numpy.ndarray
我有上面的代码,我真的不明白为什么model.coef_
正在恢复,而不是单个值的矩阵。我希望它像0.3
或13
,但它不是一个单一的值。
根据文档:
coef_:阵列,形状(n_features,)或(n_targets,n_features)
估计系数为线性回归问题。如果多个目标被拟合(Y 2D)期间传递,这是形状的2D阵列(n_targets,n_features),而如果只有一个目标被传递,这是长度n_features的一维数组。
您通过多个目标,并因此得到了形状(n_targets, n_features)
的二维数组。
尝试:
tvdss = dev_df['TVDSS'].values.astype('float')
看看会发生什么。
Y:阵列状,形状(N_SAMPLES次,)
简单地说,y
必须是一维向量,而你传递一个一维列。