辅导案例-ECE 403/503
1


LABORATORY MANUAL
ECE 403/503
OPTIMIZATION for MACHINE LEARNING



This manual was prepared by
Wu-Sheng Lu

University of Victoria
Department of Electrical and Computer Engineering






© University of Victoria
May 2020
2

Preparing Your Laboratory Report

The objective of the experiments described in this manual is to familiarize the student
with computer simulations and implementation of several optimization as well as data
processing techniques as they are applied to machine learning problems. The primary
software tool required in all experiments is MATLAB to which the student can access
during the laboratory sessions. An appendix, that introduces main functions in MATLAB
and their usage, is included to facilitate the students in preparing their MATLAB code.

PREPARATION

Successful completion of an experiment depends critically on error-free MATLAB
programming. Therefore, preparation prior to the laboratory period is essential.
Specifically, the student should study the description of the experiment and prepare
useable MATLAB codes required in the preparation section(s) before the experiment is
carried out. The student will be required to present the preparation at the beginning of the
lab session.

THE LABORATORY REPORT

A laboratory report is required from each group for each experiment performed. The lab
report should be submitted within one week after the experiment. The front page of the
report is shown on the next page and should be used for each laboratory report.

The report should be divided into the following parts:
(a) Objectives.
(b) Introduction.
(c) Results including relevant MATLAB programs and figures, and description of the
implementations.
(d) Discussion.
(e) Conclusions.








3

UNIVERSITY OF VICTORIA
Department of Electrical and Computer Engineering

ECE 403/503 Optimization for Machine Learning

LABORATORY REPORT

Experiment No:

Title:

Date of Experiment:
(should be as scheduled)

Report Submitted on:

To:

Name: (please print)
4

Experiment 1
Predicting Fuel Consumption of Automobiles

1. Introduction and objective
In this experiment, we build a linear model to predict city-cycle fuel consumption of
automobiles in miles per gallon (MPG). The database, from which the model in question
learns, was from the StatLib library which is maintained at Carnegie Mellon University.
The dataset was used in the 1983 American Statistical Association Exposition. In
literature, the data set was used by Ross Quinlan in his paper:
R. Quinlan, “Combining instance-based and model-based learning,” in Proc. Tenth
International Conference of Machine Learning, pp. 236-243, Univ. of Massachusetts,
Amherst, 1993.
The data set contains 392 samples, each sample is characterized by a vector x with six
components which are numerical values of six features of a car, including number of
cylinders, displacement, horsepower, weight, acceleration, and model year. Associated
with each sample xp is a scalar output yp representing fuel consumption of the car in MPG.
Clearly, here we are dealing with a data set of the form {(xp, yp), p = 1, 2, …, M}
with 6 1p R
x , py R , and M = 392. The objective of the experiment is to develop a
linear model that predicts fuel consumption y of an “unseen” automobile featured by a
new input vector x.
In this experiment, the above data set was divided into two sets – one for training and the
other for testing. The train dataset includes randomly selected 80% of available data -- to
be exact, P = 314 samples and the associated outputs, while the test dataset includes the
remaining T = 78 samples and their outputs.

2. Background
2.1 Least-squares linear regression for prediction
The linear model to be employed in the experiment is based on least-squares linear
regression which was studied in Sec. 1.3.1, see pages 24-28 of the course notes. Below
we summarize the method where the items involved are explicitly specified in accordance
with the above dataset. The linear model is given by
Ty b  w x (E1.1)
where y R , 6 1R w , 6 1R x , and b R . With train data {( , ), 1, 2,...,314}p py p x
(see Sec. 2.3 below), we construct
1 2 314tr
7 314
ˆ
1 1 1 
    


x x x
X and
1
2
tr
314
y
y
y
       
y (E1.2)
It follows from Eq, (1.30) of the course notes that the optimal weight w* and bias b* for
model (E1.1) are given by
5

   1 †tr tr tr tr tr trˆ ˆ ˆ ˆˆ T T  w X X X y X y (E1.3)
where
   † 1tr tr tr trˆ ˆ ˆ ˆT T X X X X
is the pseudo-inverse of trˆ
TX , and ˆ w is defined by ˆ
b



    
w
w .
Remark: MATLAB provides a function named pinv to calculate pseudo-inverse.

2.2 Predicting the outputs of test data
Using the result of (E1.3), the optimally tuned linear predictor is given by
ˆ ˆT Ty b     w x w x (E1.4)
which produces y as a prediction of the output for an input sample x. In particular, we
are interested in applying (E1.4) to the 78 samples from the test data and compare its
predictions with the “ground truth” outputs in terms of root-mean-squared error (RMSE).

2.3 The data set
The data set assumes the form {( , ), 1, 2,...,314}p py p x where each xp is a six-
dimensional column vector. The meaning of each component of xp is as follows:
x1: number of cylinders, in the range [3, 8].
x2: displacement, in the range [68, 455].
x3: horsepower, in the range [46, 230].
x4: weight, in the range [1613, 5140].
x5: acceleration, in the range [8, 24.8]
x6: model year, in the range [70, 82].
The fuel consumption in miles per gallon, yp, is in the range [9, 46.6].
• To get the data set, go to the course website and download and save file D_mpg.mat
into a folder MATLAB can access. (Warning: make sure you download the data set
that was re-posted on May 11, 2020)
• The data file contains a matrix named D_mpg whose size is 7  392. It is important to
stress that D_mpg has been re-organized from the original data set through a random
selection procedure so that its first 314 columns form the train data while the remaining
78 columns form the test data. The code below uses this data matrix to prepare matrix
trXˆ (which is named in matlab as Xh_tr, see below) and vector try (which is named in
matlab as y_tr, see below) defined in (E1.2):




6

y = D_mpg(7,:)';
M = length(y);
P = 314;
T = M - P;
X = D_mpg(1:6,:);
Xh = [X; ones(1,M)];
Xh_tr = Xh(:,1:P);
y_tr = y(1:P);

and data matrix teXˆ and associated output tey for test purpose:
Xh_te = Xh(:,P+1:M);
y_te = y(P+1:M);

3. Procedure
3.1 From the course website download D_mpg.mat
3.2 Prepare matrix trXˆ and try based on Eq. (E1.2) (refer to the code in Sec. 2.3 above).
3.3 Prepare test data teXˆ and associated output tey (refer to the code in Sec. 2.3 above).
3.4 Prepare MATLAB code to compute optimal parameter ˆ
b



    
w
w for the model in
(E1.1) using Eq. (E1.3).
3.5 Apply the optimized model
ˆ ˆT Ty      w x b w x where ˆ
1
    
x
x
to the train and test data respectively, and evaluate the root-mean-squared error
(RMSE) defined by
  1/2314 2train
1
1 ˆ ˆRMSE
314
T
p p
p
y

     w x (E1.5)
and
  1/278 2test
1
1 ˆ ˆRMSE
78
T
t t
t
y

     w x (E1.6)
where {( , ), 1, 2,...,314}p py p x used in (E1.5) are from train data {Xh_tr,y_tr},
while {( , ), 1, 2,...,78}t ty t x used in (E1.6) are from test data {Xh_te,y_te}, both
were prepared in Sec. 2.3. Report your numerical results in terms of RMSEtrain and
RMSEtest.
3.6 For comparison, in a single figure, plot the “ground truth” output y_te as a curve
colored in blue and its prediction ˆ ˆ{ , 1,2,...,78}T t t
 w x as the second curve colored
in red. Comment on your visual inspection of the figure.

Include your MATLAB code in the lab report.
51作业君 51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: IT_51zuoyejun