回答:
sklearnには(行番号、列番号)のデータ形式が必要なようです。データの形状が(行番号)のような(999, )
場合、機能しません。を使用してnumpy.reshape()
、配列の形状をに変更する必要があります(999, 1)
。たとえば、
data=data.reshape((999,1))
私の場合、それでうまくいきました。
Udacityディープラーニングファンデーションコースで見た:
df = pd.read_csv('my.csv')
...
regr = LinearRegression()
regr.fit(df[['column x']], df[['column y']])
データをに変換したため、このエラーが発生しましたnp.array
。データをnp.matrix
代わりに変換して転置することで問題を修正しました。
ValueError:
regr.fit(np.array(x_list), np.array(y_list))
正しい:
regr.fit(np.transpose(np.matrix(x_list)), np.transpose(np.matrix(y_list)))
私も同様の問題に直面しました。私の場合の問題は、Xの行数がyの行数と等しくないことでした。
つまり、機能列からいくつかの行を削除したため、機能列のエントリ数はターゲット変数の全体数と等しくありませんでした。
2つのアレイ(array1およびarray2)を分析するには、次の2つの要件を満たす必要があります。
1)numpy.ndarrayである必要があります
確認する
type(array1)
# and
type(array2)
それがそれらの少なくとも1つに当てはまらない場合は、
array1 = numpy.ndarray(array1)
# or
array2 = numpy.ndarray(array2)
2)寸法は次のようにする必要があります。
array1.shape #shall give (N, 1)
array2.shape #shall give (N,)
Nは、配列内のアイテムの数です。array1に適切な数の軸を提供するには、以下を実行します。
array1 = array1[:, numpy.newaxis]