Need Packages for the experiment

#install.packages("clusterSim")
#https://www.analyticsvidhya.com/blog/2016/03/practical-guide-deal-imbalanced-classification-problems/
library(clusterSim)
library(ggplot2)
library(MChenINN)
library(e1071)
library(caret )
library(ROCR)
library("plyr")
library(deldir)

#Datasets
library(mlbench)

Choose one of the dataset chunks

# Datasets
# Two Moon
p<-shapes.two.moon(900)
names(p) <- c("x","classes")
# Spiral
p<-mlbench.spirals(600,1.5,0.05)
names(p) <- c("x","classes")
# Iris Dataset
data(iris)
#dataset<-iris[which(iris$Species!="setosa"),][1:2-3]
dataset<-iris[which(iris$Species!="Versicolor"),][1:2-3]
dataset <- dataset[sample(1:100, 100, replace=F),]
irissubdf <- dataset[1:100, c(1, 2, 3)]
names(irissubdf) <- c("sepal", "petal", "species")
irisValues <- irissubdf[,1:2]
irisValues <- sapply(irisValues, as.numeric)
classes<-as.numeric(irissubdf$species)
#classes_bin<-mapvalues(classes,from=c(2,3),to=c(1,2))
classes_bin<-mapvalues(classes,from=c(1,3),to=c(1,2))
irisdata <- cbind(irisValues,classes_bin)
#irisTargets <- decodeClassLabels(iris[,5], valTrue=0.9, valFalse=0.1)
p <- list()

p[[1]] <- as.matrix(irissubdf[,1:2])
p[[2]] <- classes_bin
names(p) <- c("x","classes")
#names(p1) <- c("x","classes")
### Data condensation Experimental    


# Data Preparation - Receive a matrix - last column is the label
 D <- mchendatapreparation(p)
 #D1 <- mchendatapreparation(p1)


 # Step 2
# Perform the data condensation with chen`s algorithm with entropy function
 mchencondensation(D,le=-0.1,standdeviation=1,MM=7)  


 # Step 3
 # Show the performance of Entropy Function 
 #drawconfusion() 
 mchendrawentropyfunction()

Simulador

# Performance Statistics 
statistics <- data.frame()
#statistics <- c("param1_le","param2_sd","param3_mm","datapoints","redution","elapsedtime","numprototype")

# Plan Test
plan_test <- matrix(1:3, nrow = 3, ncol = 3)
plan_test[1,] <- cbind(-0.1,1,5) 
plan_test[2,] <- cbind(-0.1,1,10)  
plan_test[3,] <- cbind(-0.1,2,10) 
plan_id <- 1

# To sum up values to hiperparameters

value_Param1 <- 1 
value_Param2 <- 0
value_Param3 <- 0

iteractions <- 9

for(i in 1:iteractions){
          mchencondensation(D,le=plan_test[plan_id,1]-(.1*(value_Param1*i)),standdeviation=plan_test[plan_id,2]+(value_Param2*i),MM=plan_test[plan_id,3]+(value_Param3*i))  
          newRow <- data.frame(param1_le=plan_test[plan_id,1]-(.1*(value_Param1*i)),param2_sd=plan_test[plan_id,2]+(value_Param2*i),param3_mm=plan_test[plan_id,3]+(value_Param3*i),datapoints=Nd,reduction=((1-(length(condensed_training$elementos)/Nd))*100),elapsedtime=end_time-start_time,numprototype=length(condensed_training$elementos))
      statistics <- rbind(statistics,newRow)
}

statistics

Análise gráfica

attach(statistics)
#ggplot(data = statistics, mapping = aes(x = elapsedtime, y =  reduction, color = param3_mm)) + geom_jitter(alpha = 1)

#par(mfrow=c(2,2))
#plot(param1_le,reduction, main="Scatterplot of wt vs. mpg")
#plot(param1_le,elapsedtime, main="Scatterplot of wt vs disp")
#hist(wt, main="Histogram of wt")
#boxplot(wt, main="Boxplot of wt")


require(ggplot2)
require(reshape2)
df <- data.frame(iteractions = 1:iteractions,
                 reduction = reduction,
                 elapsedtime = elapsedtime,
                 entropy = param1_le*-1,
                 sd = param2_sd,
                 mm = param3_mm)
df <- melt(df ,  id.vars = 'iteractions', variable.name = 'Metrics')

# plot on same grid, each series colored differently -- 
# good if the series have same scale
ggplot(df, aes(iteractions,value)) + geom_line(aes(colour = Metrics)) + scale_x_continuous(breaks = c(1:iteractions),labels = c(1:iteractions)) + scale_y_log10()
# or plot on different plots
ggplot(df, aes(iteractions,value)) + geom_line() + facet_grid(Metrics ~ .) + scale_x_continuous(breaks = c(1:iteractions),labels = c(1:iteractions)) + scale_y_log10()

Original Data

mchendrawdistriborig()

Post Condensation with Chen

mchendrawdistricondensed()

Classifier knn

mchenknn()
mchendrawaucknn()
mchendrawksstat()
mchendrawmodelknn()
prediction <- as.data.frame(pred_val@labels)
names(prediction) <- c("label")
prediction <- as.factor((prediction$label))

actual_values <- as.factor(validation$label)
mchendrawconfusion(valid_pred_class_bin,prediction)
#confusionMatrix(prediction, valid_pred_class_bin, dnn = c("Prediction", "Reference"))
# Explore data
#dim(train)
#dim(validation)
#names(train)
#head(train)
#head(validation)


bigmaaplab/MChenINN documentation built on Nov. 8, 2019, 11:32 a.m.