Machine Learning in Practice Lecture 7 Carolyn Penstein Rosé Language Technologies Institute/ Human-Computer Interaction Institute Plan for the Day Announcements No new homework this week No quiz this week Project Proposal Due by the end of the week Naïve Bayes Review Linear Model Review Tic Tac Toe across models Weka Helpful Hints O X X X O O X O X Project proposals If you are using one of the prefabricated projects on blackboard, let me know which one Otherwise, tell me what data you are using Number of instances What you’re predicting What features you are working with 2 sentence description of what your ideas are for improving performance If convenient, let me know what the baseline performance is Example of ideas: How could you expand on what’s here? Example of ideas: How could you expand on what’s here? Add features that describe the source Example of ideas: How could you expand on what’s here? Add features that describe things that were going on during the time when the poll was taken Example of ideas: How could you expand on what’s here? Add features that describe personal characteristics of the candidates Getting the Baseline Performance Percent correct Percent correct, controlling for correct by chance Performance on individual categories Confusion matrix * Right click in Result list and select Save Result Buffer to save performance stats. Clarification about Cohen’s Kappa Coder 2’s Codes A B A 5 2 7 B 1 8 9 6 10 16 OverallTotal Assume 2 coders were assigning instances to category A or category B, and you want to measure their agreement. Coder 1’s Codes Total agreements = 13 Percent agreement = 13/16 = .81 Agreement by chance = i(Rowi*Coli)/OverallTotal = 7*6/16 + 9*10/16 = 2.63 + 5.63 = 8.3 Kappa = (TotalAgreement – Agreement by Chance)/ (Overall Total – Agreement by Chance) = (13 – 8.3)/(16 – 8.3) = 4.7 / 7.7 = .61 Naïve Bayes Review Naïve Bayes Simulation You can modify the Class counts and Counts for each attribute value within each class. You can also turn smoothing on or off. Finally, you can manipulate the attribute values for the instance you want to classify with your model. Naïve Bayes Simulation You can modify the Class counts and Counts for each attribute value within each class. You can also turn smoothing on or off. Finally, you can manipulate the attribute values for the instance you want to classify with your model. Naïve Bayes Simulation You can modify the Class counts and Counts for each attribute value within each class. You can also turn smoothing on or off. Finally, you can manipulate the attribute values for the instance you want to classify with your model. Linear Model Review What do linear models do? Notice that what you want to predict is a number You use the number to order instances Result = 2*A - B - 3*C Actual values between 2 and -4, rather than between 1 and 5, but order is the same. Order affects correlation, actual value affects absolute error. You want to learn a function that can get the same ordering Linear models literally add evidence What do linear models do? If what you want to predict is a category, you can assign values to ranges Sort Result = 2*A - B - 3*C Actual values between 2 and -4, rather than between 1 and 5, but order is the same. instances based on predicted value Cut based on threshold i.e., Val1 where f(x) < 0, Val2 otherwise What do linear models do? F(x) = X0 + C1X1 + C2X2 + C3X3 X1-Xn are our attributes C1-Cn are coefficients We’re learning the coefficients, which are weights Think of linear models as imposing a ranking on instances Features associated with one class get negative weights Features associated with the other class get positive weights More on Linear Regression Linear regressions try to minimize the sum of the squares of the differences between predicted values and actual values for all training instances Sum over all instances [ Square(predicted value of instance – actual value of instance) ] Note that this is different from back propagation for neural nets that minimize the error at the output nodes considering only one training instance at a time What is learned is a set of weights (not probabilities!) Limitations of Linear Regressions Can only handle numeric attributes What do you do with your nominal attributes? You could turn them into numeric attributes For example: red = 1, blue = 2, orange = 3 But is red really less than blue? Is red closer to blue than it is to orange? If you treat your attributes in an unnatural way, your algorithms may make unwanted inferences about relationships between instances Another option is to turn nominal attributes into sets of binary attributes Performing well with skewed class distributions Naïve Bayes has trouble with skewed class distributions because of the contribution of prior probabilities Linear models can compensate for this They don’t have any notion of prior probability per se If they can find a good split on the data, they will find it wherever it is Problem if there is not a good split Skewed but clean separation Skewed but clean separation Skewed but no clean separation Skewed but no clean separation Tic Tac Toe Tic Tac Toe O X X X O O X O X What algorithm do you think would work best? How would you represent the feature space? What cases do you think would be hard? Tic Tac Toe O X X X O O X O X Tic Tac Toe O X Decision Trees: .67 Kappa SMO: .96 Kappa Naïve Bayes: .28 Kappa What do you think is different about what these algorithms is learning? X X O O X O X Decision Trees Naïve Bayes O X X X O O X O X Each conditional probability is based on each square in isolation Can you guess which square is most informative? Linear Function Counts every X as evidence of winning If there are more X’s, then it’s a win for X Usually right, except in the case of a tie O X X X O O X O X Take Home Message Naïve Bayes is affected by prior probabilities in two places Note that prior probabilities have an indirect effect on all conditional probabilities Linear functions are not directly affected by prior probabilities So sometimes they can perform better on skewed data sets Even with the same data representation, different algorithms learn something different Naïve Bayes learned that the center square is important Decision trees memorized important trees Linear function counted Xs Weka Helpful Hints Use the visualize tab to view 3-way interactions Use the visualize tab to view 3-way interactions Click in one of the boxes to zoom in Use the visualize tab to view 3-way interactions