セグメント化された線形回帰を行うための Python のライブラリはありますか? 次のようなものを取得するために、複数の行を自動的にデータに合わせたいと思います。
ところで。私はセグメントの数を知っています。
セグメント化された線形回帰を行うための Python のライブラリはありますか? 次のようなものを取得するために、複数の行を自動的にデータに合わせたいと思います。
ところで。私はセグメントの数を知っています。
X を昇順に並べ替え、いくつかの線形回帰を作成するだけです。sklearn から LinearRegression を使用できます。
たとえば、曲線を 2 分割すると、次のようになります。
from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt
X = np.array([-5,-4,-3,-2,-1,0,1,2,3,4,5])
Y = X**2
X=X.reshape(-1,1)
reg1 = LinearRegression().fit(X[0:6,:], Y[0:6])
reg2 = LinearRegression().fit(X[6:,:], Y[6:])
fig = plt.figure('Plot Data + Regression')
ax1 = fig.add_subplot(111)
ax1.plot(X, Y, marker='x', c='b', label='data')
ax1.plot(X[0:6,],reg1.predict(X[0:6,]), marker='o',c='g', label='linear r.')
ax1.plot(X[6:,],reg2.predict(X[6:,]), marker='o',c='g', label='linear r.')
ax1.set_title('Data vs Regression')
ax1.legend(loc=2)
plt.show()
同様の実装を行いました。コードは次のとおりです: https://github.com/mavaladezt/Segmented-Algorithm