はじめに
この記事では、Jupyter NotebookのipywidgetsパッケージのIntSliderウィジェットを使用して、多項式近似の次数をインタラクティブに調整する方法を解説します。lmfitのPolynomialModelを利用したデータフィッティングの実装例を通して、ユーザーがスライダーを動かすだけで異なる次数の多項式がデータにどのようにフィットするかをリアルタイムで確認できる手法を紹介します。
解説
モジュールのインポートなど
バージョン
データの生成
sin関数データを作成します。
データを表示すると以下のようになります。

3次の多項式で近似
例として、3次の多項式で近似した結果を示します。
lmfitのPolynomialModel(3)を定義し、model.guess()でパラメータを初期設定した後、model.fit()でフィッティングを実行します。また、ax.text()で決定係数を図中に表示しています。

Intsliderで次数を変化させてフィット
IntSlider(min=1, max=7, step=1, value=3, description=”degree”)を設定し、1から7までの範囲で1刻みにスライダーを動かせるようにしました。description=”degree”パラメータにより、スライダーの左側に「degree(次数)」という説明文を表示しています。
スライダーを動かすたびに、ax.cla()で図をクリアし、新たにフィッティングを実行して結果を表示します。
フィッティングで得られたパラメータ値はDataFrameに変換し、display()関数で表示しています。
動作の様子を以下のアニメーションで示します。
まとめ
本記事では、ipywidgetsのIntSliderを使って多項式近似の次数を動的に調整し、データフィッティングをインタラクティブに行う方法を解説しました。この手法により、適切な多項式の次数を視覚的に判断でき、過学習や適合不足の状態を簡単に確認することができます。Jupyter環境でのデータ分析において、パラメータ調整を効率的に行いたい場合に非常に有用なテクニックです。
参考


コメント