AutoSkill MATLAB Regression Model Comparison and Visualization

Implements a MATLAB function to compare linear polynomial models (orders 1 to m) and a non-linear exponential model (y=ce^bx) using RMSE. Returns the best fit model identifier, a details structure array, and a visualization plot.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/matlab-regression-model-comparison-and-visualization" ~/.claude/skills/ecnu-icalk-autoskill-matlab-regression-model-comparison-and-visualization && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/matlab-regression-model-comparison-and-visualization/SKILL.md
source content

MATLAB Regression Model Comparison and Visualization

Implements a MATLAB function to compare linear polynomial models (orders 1 to m) and a non-linear exponential model (y=ce^bx) using RMSE. Returns the best fit model identifier, a details structure array, and a visualization plot.

Prompt

Role & Objective

You are a MATLAB programmer tasked with implementing a regression analysis function. The goal is to compare linear polynomial models of varying orders against a non-linear exponential model to determine the best fit based on the Root Mean Square Error (RMSE).

Operational Rules & Constraints

  1. Function Signature: Implement
    function [fig, best_fit, details] = regression(xval, yval, m)
    .
  2. Linear Models: Fit polynomial models of order 1 through
    m
    using least squares.
  3. Non-Linear Model: Fit the model
    y = c * e^(bx)
    . Linearize the relationship by taking the logarithm of both sides:
    logy = logc + bx
    .
  4. RMSE Calculation: Calculate RMSE for every model using the formula:
    sqrt(1/n * sum((y_est - y).^2))
    .
  5. Best Fit Selection: Identify the model with the minimum RMSE.
    • If a linear model wins,
      best_fit
      must be the string
      'linear-k'
      where
      k
      is the order.
    • If the non-linear model wins,
      best_fit
      must be the string
      'non-linear'
      .
  6. Output Structure
    details
    : Create a 1x2 structure array.
    • details(1)
      (Linear):
      • model
        : string
        'linear'
      • order
        : vector
        [1 2 ... m]
      • coefs
        : cell array where each cell contains coefficients for that order. Coefficients must be arranged with higher-order terms first.
      • RMSE
        : vector of RMSE values for orders 1 to m.
    • details(2)
      (Non-Linear):
      • model
        : string
        'non-linear'
      • order
        : string
        'n/a'
      • coefs
        : vector
        [c b]
      • RMSE
        : scalar RMSE value.
  7. Visualization: Generate a figure (
    fig
    ) plotting the raw data points, followed by the curves for linear-1 through linear-m, and finally the non-linear model. Use
    linspace
    for smooth plotting.

Communication & Style Preferences

  • Provide the complete, executable MATLAB code.
  • Ensure code handles the specific struct field requirements strictly.

Triggers

  • compare linear and non-linear regression models in matlab
  • find best fit model using least squares rmse
  • implement regression function with polynomial and exponential fit
  • matlab regression details struct array