ECE4450 - Applied Computational Intelligence - Engineering Assignment Help

Download Solution Order New Solution
Assignment Task

 

vector

Figure 1 shows a plot of the data in the file ‘KidsHeightData.csv’, which you have already used in assignment 2. In this problem you will learn a support vector machine (SVM) classifier on the same data. Implementing SVM from scratch is non-trivial; so you will use sklearn’s svm package. Look it up to learn about it. Specifically, in the class we only covered linear SVMs i.e. which can find a linear boundary. For linear SVMs, sklearn’s svm package has a function ‘LinearSVC’. In general, for sklearn, first you create an object for a model (passing some parameters), and then call .f it() to fit the model. You may go ahead with the default parameter settings, but playing around with parameters such as max iter, C, and class weight can come in handy. The parameter class weight helps you assign different costs for making mistakes while classifying a particular class e.g. in practice one might be okay with misclassifying one class while misclassifying another class could be disastrous. Please do not
confuse class weight with the classifier weights that you’re learning. class weight specifies how costly it is to make error on each class e.g. if it’s twice as costly to misclassify class 1 as compared to class 2, the class weights for class 1 and 2 could be: 2 and 1 respectively, or 1 and 0.5, or 6 and 3 (only the ratio matters).

(a) Using the default value for class weight, train a linear SVM classifier for the height prediction problem. Report the learned weights and bias. Once the classifier has been learned (i.e. after you call .f it()), you may access several properties in your model object. The weight and bias can be accessed through ‘model.coef ’ and ‘model.intercept ’. Plot the separating line on your data. Is it different from the one you learned in assignment 2? If so, why?

(b) By changing the class weight parameter, find a setting that classifies all the points from ‘plus’ class correctly. To clarify, you are being asked to find a line which is not allowed to make any error while classifying the ‘plus’ class but still needs to minimize the errors for the ‘dot’ class, to the extent possible. Plot this new line and report the values for weight and bias. Report the values for class weights.

[Hint 1]: Since you are dealing with two classes, the parameter class weight would be a dictionary object with two elements, with class labels as keys, and the corresponding weights as values.

[Hint 2]: You are not required to write a script to figure out the class weights to get all examples from ‘plus’ class right. Once you have implemented part (a), you can play around with class weights, plot the line and visually see when the last ‘plus’ falls above the line. Another hint: Since the ratio of class weights is what actually matters, you may fix one weight and change the other.

 

This ECE4450 - Engineering Assignment has been solved by our Engineering experts at My Uni Paper. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.

Get It Done! Today

Country
Applicable Time Zone is AEST [Sydney, NSW] (GMT+11)
+

Every Assignment. Every Solution. Instantly. Deadline Ahead? Grab Your Sample Now.