Objective: We have seen in the course that nonparametric models aim at directly estimating the regression function of MSE criterion. In this TP, we shall learn how to implement the three basic nonparametric models including \(K\)-NN, Decision Trees and Kernel Smoother method.
Abalone is a popular seafood in Japanese and European cuisine. However, the age of abalone is determined by cutting the shell through the cone, staining it, and counting the number of Rings through a microscope, a boring and time-consuming task. Other measurements, which are easier to obtain, are used to predict the age, including their physical measurements, weights etc. This section aims at predicting the Rings of abalone using its physical measurements. Read and load the data from kaggle: Abalone dataset.
# %pip install kagglehub # if you have not installed "kagglehub" module yetimport kagglehub# Download latest versionpath = kagglehub.dataset_download("rodolfomendes/abalone-dataset")# Import dataimport pandas as pddata = pd.read_csv(path +"/abalone.csv")data.head()
Sex
Length
Diameter
Height
Whole weight
Shucked weight
Viscera weight
Shell weight
Rings
0
M
0.455
0.365
0.095
0.5140
0.2245
0.1010
0.150
15
1
M
0.350
0.265
0.090
0.2255
0.0995
0.0485
0.070
7
2
F
0.530
0.420
0.135
0.6770
0.2565
0.1415
0.210
9
3
M
0.440
0.365
0.125
0.5160
0.2155
0.1140
0.155
10
4
I
0.330
0.255
0.080
0.2050
0.0895
0.0395
0.055
7
A. Overview of the dataset.
What’s the dimension of this dataset? How many quantitative and qualitative variables are there in this dataset?
Create statistical summary of the dataset. Identify problems if there is any in this dataset.
Study the correlation matrix of this dataset. Comment this correlation matrix.
# To do
B. Model development.
Split the dataset into \(80\%-20\%\) training-testing data using random_state = 42.
Build a \(K\)-NN model and fine-tune it to predict the testing data. Report its RMSE.
Build a Regression Tree to predict the testing data and report its RMSE.
Build a Kernel Smoother method to predict the testing data and report its RMSE (my python module: gradientcobra and its module: KernelSmoother).
# To do
C. Neural Network.
Design a neural network to predict the testing data and compute its RMSE.
Compre to the previous results and conclude.
2. Revisit Spam dataset
Your task in this section is to create email spam filters by applying the nonparametric models introduced in the course.
Report test performance metrics on the spam dataset loaded below.
Build a pipeline that takes text input as a real email, then return the type of the email using your best spam filter found in the first question.