Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのデータに対する多項式の最小二乗適合を取得します


多項式のデータへの最小二乗適合を取得するには、Python Numpyでpolynomial.polyfit()を使用します。このメソッドは、低から高の順に並べられた多項式係数を返します。 yが2次元の場合、coefの列kの係数は、yのk番目の列のデータへの多項式近似を表します。パラメータxは、M個のサンプル(データ)ポイント(x [i]、y [i])のx座標です。

パラメータyは、サンプルポイントのy座標です。同じx座標を共有するサンプルポイントのいくつかのセットは、列ごとに1つのデータセットを含む2次元配列をyに渡すことにより、polyfitへの1回の呼び出しで(独立して)適合させることができます。パラメータdegは、近似多項式の次数です。 degが単一の整数の場合、degの項までのすべての項が近似に含まれます

パラメータrcondは、近似の相対条件数です。最大の特異値に対してrcondより小さい特異値は、無視されます。デフォルト値はlen(x)* epsです。ここで、epsは、プラットフォームのフロートタイプの相対精度であり、ほとんどの場合、約2e-16です。パラメータfullは、戻り値の性質を決定するスイッチです。 False(デフォルト)の場合、係数のみが返されます。 Trueの場合、特異値分解からの診断情報も返されます。

パラメータwは重みです。 Noneでない場合、重みw[i]はx[i]の非二乗残差y[i]--y_hat[i]に適用されます。理想的には、積w [i] *y[i]の誤差がすべて同じ分散を持つように重みが選択されます。逆分散重み付けを使用する場合は、w [i] =1 / sigma(y [i])を使用します。デフォルト値はNoneです。

ステップ

まず、必要なライブラリをインポートします-

import numpy as np
from numpy.polynomial import polynomial as P

x座標-

x = np.linspace(-1,1,51)

x座標を表示する-

print("X Co-ordinate...\n",x)

y座標-

y = x**3 - x + np.random.randn(len(x))
print("\nY Co-ordinate...\n",y)

多項式のデータへの最小二乗適合を取得するには、Python Numpyでpolynomial.polyfit()を使用します-

c, stats = P.polyfit(x,y,3,full=True)
print("\nResult...\n",c)
print("\nResult...\n",stats)

import numpy as np
from numpy.polynomial import polynomial as P

# The x-coordinate
x = np.linspace(-1,1,51)

# Display the x-coordinate
print("X Co-ordinate...\n",x)

# The y-coordinate
y = x**3 - x + np.random.randn(len(x))
print("\nY Co-ordinate...\n",y)

# To get the least-squares fit of a polynomial to data, use the polynomial.polyfit() in Python Numpy

# The method returns the Polynomial coefficients ordered from low to high. If y was 2-D, the coefficients in column k of coef represent the polynomial fit to the data in y’s k-th column.
c, stats = P.polyfit(x,y,3,full=True)
print("\nResult...\n",c)
print("\nResult...\n",stats)

出力

X Co-ordinate...
[-1. -0.96 -0.92 -0.88 -0.84 -0.8 -0.76 -0.72 -0.68 -0.64 -0.6 -0.56
 -0.52 -0.48 -0.44 -0.4 -0.36 -0.32 -0.28 -0.24 -0.2 -0.16 -0.12 -0.08
 -0.04 0. 0.04 0.08 0.12 0.16 0.2 0.24 0.28 0.32 0.36 0.4
  0.44 0.48 0.52 0.56 0.6 0.64 0.68 0.72 0.76 0.8 0.84 0.88
  0.92 0.96 1. ]

Y Co-ordinate...
[ 0.24282445 -0.48320773 -1.18068109 -0.48486683 0.80514762 0.48976259
  0.31363813 -0.03382685 -0.92334611 0.86835062 0.24661201 0.9790978
  0.03782101 0.12213365 -1.37248029 1.99891304 -0.09825977 1.74524931
  0.70560858 0.15516069 0.69169705 0.76957712 -1.21919676 1.50064825
  1.32101339 -2.51479992 -0.28998783 -1.24293076 0.45927699 -0.53484746
  0.50455341 -0.06351788 -2.69585303 -0.46833578 1.4924168 -2.42374146
 -1.91934499 -1.36311466 -1.23946547 -1.56822005 -0.79648036 1.58269324
 -0.53682862 -0.90861958 -0.28174461 -0.10775622 0.58535687 1.06373501
 -2.28991738 2.01597286 -0.75841069]

Result...
[-0.17198829 -1.84107674 0.09439374 2.39030912]

Result...
[array([60.43653521]), 4, array([1.38446749, 1.32119158, 0.50443316, 0.28853036]), 1.1324274851176597e-14]

  1. Pythonのデータの非線形傾向を理解するために、多項式回帰モデルをどのように適合させることができますか?

    回帰モデルが構築されているとき、多重共線性がチェックされます。これは、連続変数のすべての異なる組み合わせの間に存在する相関関係を理解する必要があるためです。変数間に多重共線性が存在する場合は、それがデータから削除されていることを確認する必要があります。 実世界のデータは通常、非線形です。このような非線形データをモデルに適合させるメカニズムを見つける必要があります。このデータを視覚化するために、Anscombeのデータセットを使用します。 「implot」関数は非線形データで使用されます- 例 import pandas as pd import seaborn as sb from mat

  2. scikit-learnライブラリを使用してPythonで画像の解像度を取得するにはどうすればよいですか?

    データの前処理とは、基本的に、すべてのデータ(さまざまなリソースまたは単一のリソースから収集される)を共通の形式または統一されたデータセット(データの種類に応じて)に収集するタスクを指します。実際のデータは決して理想的ではないため、データにセルの欠落、エラー、外れ値、列の不一致などが含まれる可能性があります。場合によっては、画像が正しく配置されていないか、鮮明でないか、サイズが非常に大きいことがあります。前処理の目標は、これらの不一致やエラーを取り除くことです。 画像の解像度を取得するには、「shape」という名前の組み込み関数を使用します。画像が読み取られた後、ピクセル値は配列の形式で保存