we will also be using real-world regression datasetthe boston housing dataset the task associated with this dataset is to predict the median value of homes in several boston neighborhoods in the susing information such as crime rateproximity to the charles riverhighway accessibilityand so on the dataset contains data pointsdescribed by featuresin[ ]from sklearn datasets import load_boston boston load_boston(print("data shape{}format(boston data shape)out[ ]data shape( againyou can get more information about the dataset by reading the descr attribute of boston for our purposes herewe will actually expand this dataset by not only considering these measurements as input featuresbut also looking at all products (also called interactionsbetween features in other wordswe will not only consider crime rate and highway accessibility as featuresbut also the product of crime rate and highway accessibility including derived feature like these is called feature engineeringwhich we will discuss in more detail in this derived dataset can be loaded using the load_extended_boston functionin[ ]xy mglearn datasets load_extended_boston(print(" shape{}format( shape)out[ ] shape( the resulting features are the original features together with the possible combinations of two features within those we will use these datasets to explain and illustrate the properties of the different machine learning algorithms but for nowlet' get to the algorithms themselves firstwe will revisit the -nearest neighbors ( -nnalgorithm that we saw in the previous this is called the binomial coefficientwhich is the number of combinations of elements that can be selected from set of elements often this is written as supervised learning and spoken as " choose "--in this case" choose