with these four additional featureswe now have seven features representing individual posts let' see how we have progressedmean(scores)= stddev(scores)= now that' interesting we added four more features and got worse classification accuracy how can that be possibleto understand thiswe have to remind ourselves of how knn works our nn classifier determines the class of new post by calculating the preceding seven described featuresnamely linkcountnumtexttokensnumcodelinesavgsentlenavgwordlennumallcapsand numexclamsand then finds the five nearest other posts the new post' class is then the majority of the classes of those nearest posts the nearest posts are determined by calculating the euclidean distance as we did not specify itthe classifier was initialized with the default value which is the parameter in the minkowski distance this means that all seven features are treated similarly knn does not really learn thatfor instancenumtexttokens is good to have but much less important than numlinks let us consider the following two postsa and bwhich only differ in the following featuresand how they compare to new postpost numlinks numtexttokens new although we would think that links provide more value than mere textpost would be considered more similar to the new post than post clearlyknn has hard time correctly using the available data deciding how to improve to improve on thiswe basically have the following optionsadd more datait may be that there is just not enough data for the learning algorithm and that we simply need to add more training data play with the model complexityit may be that the model is not complex enough or is already too complex in this casewe could either decrease so that it would take less nearest neighbors into account and thus would be better at predicting non-smooth dataor we could increase it to achieve the opposite