to the list of examples

# Write a target function for optimization in regression analysis

The target function usually requires additional parameters and must be placed apart from the main module. It is convinient to have several target function and use them in turn.

## Contents

```fname = 'demo_target_function.csv';
y = DATA(:,1);
x = DATA(:,2:end);
%plot(x);
```

## Tune a linear regression model using a common optimization algorithm

```w0 = 0.1*ones(10,1); % parameters
w1 = 0.1*rand(10,1); % additional parameters
lambda =1; % regularization parameter

% run the optimization algorithm
w = fminunc(@target_function,w0,[],x,y);
```
```Warning: Gradient must be provided for trust-region method;
Optimization terminated: relative infinity-norm of gradient less than options.TolFun.
```

## Plot the results

```h = figure; hold on
plot([1:length(y)],y,'r-');
plot([1:length(y)],x*w,'b-');
legend('Raw data','Regression');
xlabel('x');
ylabel('y');
% saveas(h,'demo_target_function_01','png')
close(h);
```

## The target function example

```% function err = target(w,x,y,lambda,w1)
% Target function for a demo  optimization problem
%
% err = target(w,x,y,lambda,w1)
%
% w [1,W] parameter vector to be optimized
% x [N,1] independent variable of the regression model
% y [N,1] dependent variable
% lambda [scalar] regularization parameter (optional)
%
% num = nargin;
% if num == 5
%       regul = lambda* sumsqr(w-w1);
% else
%       regul = 0;
% end
% err = sumsqr(y-x*w) + regul;
% return
%
```

http://strijov.com

```% this file: demo_target_function
```