🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

10412閲覧

sklearnを使って単回帰分析をしようと思ったらエラーが出る

Moai

総合スコア9

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/12/08 05:36

以下のコードを実行したら
ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 5 is different from 1)
と出力されます。これは何に問題があると考えられるのでしょうか?

import numpy as np from sklearn.linear_model import LinearRegression lr = LinearRegression() x = np.array([ [ 3,5,7,9,10 ] ]) t = np.array([ [1,3,5,7,9] ]) lr.fit(x,t) x = np.array([ [4] ]) lr.predict(x)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

こういうことかな?

python

1import numpy as np 2from sklearn.linear_model import LinearRegression 3 4lr = LinearRegression() 5x = np.array([ 6 [ 7 3,5,7,9,10 8 ] 9 ]) 10t = np.array([ 11 [1,3,5,7,9] 12 ]) 13 14lr.fit(x.T,t.T) 15 16x2 = np.array([ 17 [4] 18 ]) 19lr.predict(x2) 20# array([[1.92682927]])

投稿2020/12/08 06:16

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2020/12/08 06:20

lr.coef_ * 4 + lr.intercept_ と同じ結果になります
Moai

2020/12/08 06:22

そのような書き方があったんですね! fit関数のところで両方とも転置をしているのはどうしてでしょうか?
jbpb0

2020/12/08 06:44

x, tは、縦に数値が並ばないといけないからです お書きになったやり方だと横に数値が並んでいるので、転置して縦並びにしました 下記のようにして、サイズを確認してみてください print(x.shape) print(t.shape) また、下記のようにすれば、縦並びなので転置は不要です x = np.array([ [3],[5],[7],[9],[10] ]) t = np.array([ [1],[3],[5],[7],[9] ]) lr.fit(x,t) x2 = np.array([ [4] ]) lr.predict(x2) https://arakan-pgm-ai.hatenablog.com/entry/2019/07/12/000000 の真ん中あたりの「学習と評価でエラーがでる場合があります」のところも見てください
guest

0

ベストアンサー

x = np.array([[4]])のところで要素数を5にしてください。(例えばx = np.array([[4,2,9,1,7]]))

投稿2020/12/08 05:45

meg_

総合スコア10736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Moai

2020/12/08 06:08

ご返信ありがとうございます。 単回帰分析をしたい場合はlrのcoef_とintercept_を求めた後、それを元に式を作り、引数を算出するということでした。 つまり、 y =lr.corf*4_ + intercept_ で求められるということでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問