#=================== # IMPURITY MEASURES #=================== n <- 1000 misclass <- entropy <- gini <- rep(0,n) for (i in 1:n){ p <- i/n misclass[i] <- min(p, 1-p) entropy[i] <- - p * log(p) - (1-p)*log(1-p) gini[i] <- p*(1-p) } par(bg="lightblue", mar=rep(5,4), mfrow=c(1,1)) plot(x=(1:n)/n, y=entropy, ann=T, type="l", main="", xlab="p", ylab="impurity", lty=1, lwd=2, col="blue") lines(x=(1:n)/n, y=misclass, lty=1, lwd=2, col="red") lines(x=(1:n)/n, y=gini, lty=1, lwd=2, col="purple") segments(0.5, -.02, .5, -2*0.5*log(0.5), lty=2) text(x=.56, y=.27, "Gini") text(x=.67, y=.42, "Misclass") text(x=.79, y=.6, "Entropy") # ====================== # Splitting Illustration?? # ======================