どのようにpythonの中で線形回帰を実現しますか?
線形回帰は基本的な統計と機械学習技術の一つである。経済、コンピュータ科学、社会科学などの学科では、統計分析や機械学習、科学計算など、線形モデルを使う機会が多いです。まずそれを勉強して、もっと複雑な方法を試してみてください。
本論文では主にPythonにおける線形回帰を徐々に実現する方法を紹介する。線形回帰の数学的導出、線形回帰の具体的な働きについては、復帰モデルをどのように改良するかについては後述する。
回帰する
回帰分析は統計と機械学習の中で最も重要な分野の一つです。多くの利用可能な復帰方法があります。線形回帰はその一つです。線形回帰は最も重要であり、最も広範な回帰技術の一つであるかもしれない。これは一番簡単な回帰方法の一つです。その主要な利点の一つは,線形回帰で得られた結果が非常に説明しやすいことである。復帰は主に以下の通りです。単純線形回帰 多元線形回帰 多項式回帰
どのようにpythonの中で線形回帰を実現しますか?
使用したパッケージ NumPy
NumPyはPythonの基礎科学ソフトウェアパッケージであり、多くの高性能動作を単一次元と多次元配列で実行できる。 scikit-learn
scikit-learnはNumPyと他のいくつかのパッケージに基づいて広く使われているPythonマシン学習ライブラリです。前処理データを提供して、次元を減らして、回帰、分類、クラスターなどの方法を実現します。 statsmoodels
線形回帰を実現し、かつscikit-learnの範囲を超える機能が必要であれば、統計モデルの推定、テストの実行などにstatsmoodelsを用いることができると考えられる。
scikit-learnの単純な線形回帰
1.使用するパッケージとクラスを導入する
3.モデルを作る
クラスのインスタンスLiregressionを作成します。回帰モデルを表します。
モデルをフィッティングした後は、モデルに関する各種パラメータを確認します。
5.予測効果
一般的に、線形モデルは最終的に予測に用いられます。予測効果を見てみます。
scikit-learnの多元線形回帰
直接に始めましょう
1.パッケージとクラスを導入し、データを作成する
多項式回帰
パッケージのインポートとデータの作成
次のステップは前と同じです。多項式回帰はデータ変換のステップが多くて、ある意味、多項式回帰も線形回帰です。
以上はどのようにpythonの中で線形回帰の詳しい内容を実現しますか?
本論文では主にPythonにおける線形回帰を徐々に実現する方法を紹介する。線形回帰の数学的導出、線形回帰の具体的な働きについては、復帰モデルをどのように改良するかについては後述する。
回帰する
回帰分析は統計と機械学習の中で最も重要な分野の一つです。多くの利用可能な復帰方法があります。線形回帰はその一つです。線形回帰は最も重要であり、最も広範な回帰技術の一つであるかもしれない。これは一番簡単な回帰方法の一つです。その主要な利点の一つは,線形回帰で得られた結果が非常に説明しやすいことである。復帰は主に以下の通りです。
使用したパッケージ
scikit-learnの単純な線形回帰
1.使用するパッケージとクラスを導入する
import numpy as np
from sklearn.linear_model import LinearRegression
2.データの作成
x = np.array([5, 15, 25, 35, 45, 55]).reshape((-1, 1))
y = np.array([5, 20, 14, 32, 22, 38])
二つの配列が生成されました。入力x(回帰変数)と出力y(予測変数)を見てください。
>>> print(x)
[[ 5]
[15]
[25]
[35]
[45]
[55]]
>>> print(y)
[ 5 20 14 32 22 38]
xは二次元であり,yは一次元であることが見られ,複雑な点のモデルでは係数は一つだけではないからである。ここでは.reshpeを使って変換します。3.モデルを作る
クラスのインスタンスLiregressionを作成します。回帰モデルを表します。
model = LinearRegression()
今からモデルのフィッティングを始めます。まず.fit()関数を呼び出して優れたものを得ることができますか?_;和具体的には次の2つの等価方法がある。
model.fit(x, y)
model = LinearRegression().fit(x, y)
4.結果を見るモデルをフィッティングした後は、モデルに関する各種パラメータを確認します。
>>> r_sq = model.score(x, y)
>>> print('coefficient of determination:', r_sq)
coefficient of determination: 0.715875613747954
score()関数はモデルのを得ることができますか?²,係数を見てください
>>> print('intercept:', model.intercept_)
intercept: 5.633333333333329
>>> print('slope:', model.coef_)
slope: [0.54]
係数とパンニングはそれぞれ[0.54]と5.6333であり、係数は二次元配列であることが分かります。5.予測効果
一般的に、線形モデルは最終的に予測に用いられます。予測効果を見てみます。
>>> y_pred = model.predict(x)
>>> print('predicted response:', y_pred, sep='
')
predicted response:
[ 8.33333333 13.73333333 19.13333333 24.53333333 29.93333333 35.33333333]
もちろん次の方法も使えます。
>>> y_pred = model.intercept_ + model.coef_ * x
>>> print('predicted response:', y_pred, sep='
')
predicted response:
[[ 8.33333333]
[13.73333333]
[19.13333333]
[24.53333333]
[29.93333333]
[35.33333333]]
サンプル内のデータで予測できるほか、サンプル以外のデータで予測することもできます。
>>> x_new = np.arange(5).reshape((-1, 1))
>>> print(x_new)
[[0]
[1]
[2]
[3]
[4]]
>>> y_new = model.predict(x_new)
>>> print(y_new)
[5.63333333 6.17333333 6.71333333 7.25333333 7.79333333]
これで簡単な線形回帰モデルが作られた。scikit-learnの多元線形回帰
直接に始めましょう
1.パッケージとクラスを導入し、データを作成する
import numpy as np
from sklearn.linear_model import LinearRegression
x = [[0, 1], [5, 1], [15, 2], [25, 5], [35, 11], [45, 15], [55, 34], [60, 35]]
y = [4, 5, 20, 14, 32, 22, 38, 43]
x, y = np.array(x), np.array(y)
データを見てください
>>> print(x)
[[ 0 1]
[ 5 1]
[15 2]
[25 5]
[35 11]
[45 15]
[55 34]
[60 35]]
>>> print(y)
[ 4 5 20 14 32 22 38 43]
2.多元回帰モデルの構築
model = LinearRegression().fit(x, y)
3.結果を見る
>>> r_sq = model.score(x, y)
>>> print('coefficient of determination:', r_sq)
coefficient of determination: 0.8615939258756776
>>> print('intercept:', model.intercept_)
intercept: 5.52257927519819
>>> print('slope:', model.coef_)
slope: [0.44706965 0.25502548]
4.予測
#
>>> y_pred = model.predict(x)
>>> print('predicted response:', y_pred, sep='
')
predicted response:
[ 5.77760476 8.012953 12.73867497 17.9744479 23.97529728 29.4660957
38.78227633 41.27265006]
#
>>> x_new = np.arange(10).reshape((-1, 2))
>>> print(x_new)
[[0 1]
[2 3]
[4 5]
[6 7]
[8 9]]
>>> y_new = model.predict(x_new)
>>> print(y_new)
[ 5.77760476 7.18179502 8.58598528 9.99017554 11.3943658 ]
すべての結果は結果の中にあります。もう説明しすぎません。多項式の回帰はどうやって実現されますか?多項式回帰
パッケージのインポートとデータの作成
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
x = np.array([5, 15, 25, 35, 45, 55]).reshape((-1, 1))
y = np.array([15, 11, 2, 8, 25, 32])
多項式の回帰は前と違ってデータの変換が必要です。モデルに含まれています。²などの変数がありますので、データ作成後にxを変換しますか?²。
transformer = PolynomialFeatures(degree=2, include_bias=False)
データを見てみます
>>> print(x_)
[[ 5. 25.]
[ 15. 225.]
[ 25. 625.]
[ 35. 1225.]
[ 45. 2025.]
[ 55. 3025.]]
モデリング次のステップは前と同じです。多項式回帰はデータ変換のステップが多くて、ある意味、多項式回帰も線形回帰です。
model = LinearRegression().fit(x_, y)
結果を表示
>>> r_sq = model.score(x_, y)
>>> print('coefficient of determination:', r_sq)
coefficient of determination: 0.8908516262498564
>>> print('intercept:', model.intercept_)
intercept: 21.372321428571425
>>> print('coefficients:', model.coef_)
coefficients: [-1.32357143 0.02839286]
予測する
>>> y_pred = model.predict(x_)
>>> print('predicted response:', y_pred, sep='
')
predicted response:
[15.46428571 7.90714286 6.02857143 9.82857143 19.30714286 34.46428571]
今回の多項式回帰のすべての結果は上にあります。一目瞭然です。以上はどのようにpythonの中で線形回帰の詳しい内容を実現しますか?