This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

print(iris)
data(iris)
plot(iris)
summary(iris)
boxplot(iris)

levels(iris$Species)

library(caret)
library(ellipse)
scales <- list(x = list(relation = "free"), y = list(relation = "free"))
featurePlot(x = iris[,1:4], y=iris[,5], plot="ellipse", scales = scales)
#KLASYFIKACJA
iris.training.indicies <- createDataPartition(iris$Species, p =0.80, list = FALSE)
iris.training <- iris[iris.training.indicies,]
iris.validation <- iris[-iris.training.indicies,]
boxplot(iris.training); boxplot(iris.validation)

control <- trainControl(method = "cv", number = 10)
metric <- "Accuracy"

library(MASS)
set.seed(7)
fit.lda <- train(Species~., data = iris.training, method = "lda", metric = metric, trControl = control)

set.seed(7)
fit.cart <- train(Species~., data = iris.training, method = "rpart", metric = metric, trControl = control)

set.seed(7)
fit.knn <- train(Species~., data = iris.training, method = "knn", metric = metric, trControl = control)

set.seed(7)
fit.svm <- train(Species~., data = iris.training, method = "svmRadial", metric = metric, trControl = control)

set.seed(7)
fit.rf <- train(Species~., data = iris.training, method = "rf", metric = metric, trControl = control)

print(fit.lda)
print(fit.cart)
print(fit.knn)
print(fit.svm)
print(fit.rf)

fit.knn$bestTune

results <- resamples(list(lda = fit.lda, cart = fit.cart, knn = fit.knn, svm = fit.svm, rf = fit.rf))
summary(results)
dotplot(results)

iris.prediction.lda <- predict(fit.lda, iris.validation[,1:4])
iris.prediction.lda
confusionMatrix(iris.prediction.lda, iris.validation$Species)

iris.prediction.cart <- predict(fit.cart, iris.validation[,1:4])
iris.prediction.cart != iris.prediction.lda
confusionMatrix(iris.prediction.cart, iris.validation$Species)
iris.data <- iris[,1:4]
iris.species <- iris[,5]

head(iris.data)

normalize <- function(x)
{
  return((x-min(x))/(max(x)-min(x)))
}

iris.data$Sepal.Length <- normalize(iris.data$Sepal.Length)
iris.data$Sepal.Width <- normalize(iris.data$Sepal.Width)
iris.data$Petal.Length <- normalize(iris.data$Petal.Length)
iris.data$Petal.Width <- normalize(iris.data$Petal.Width)
head(iris.data)

grupy <- kmeans(iris.data, 3)
print(grupy)
grupy$size
grupy$cluster

par(mfrow=c(2,2), mar=c(5,4,2,2))
plot(iris.data[c(1,2)], col=grupy$cluster)
plot(iris.data[c(1,2)], col=iris.species)

plot(iris.data[c(3,4)], col=grupy$cluster)
plot(iris.data[c(3,4)], col=iris.species)

trafnosc <- table(grupy$cluster, iris.species)

par()
heatmap(trafnosc, scale="column", Colv = NA, Rowv = NA)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KYGBge3J9DQpwcmludChpcmlzKQ0KZGF0YShpcmlzKQ0KcGxvdChpcmlzKQ0Kc3VtbWFyeShpcmlzKQ0KYm94cGxvdChpcmlzKQ0KDQpsZXZlbHMoaXJpcyRTcGVjaWVzKQ0KDQpsaWJyYXJ5KGNhcmV0KQ0KbGlicmFyeShlbGxpcHNlKQ0Kc2NhbGVzIDwtIGxpc3QoeCA9IGxpc3QocmVsYXRpb24gPSAiZnJlZSIpLCB5ID0gbGlzdChyZWxhdGlvbiA9ICJmcmVlIikpDQpmZWF0dXJlUGxvdCh4ID0gaXJpc1ssMTo0XSwgeT1pcmlzWyw1XSwgcGxvdD0iZWxsaXBzZSIsIHNjYWxlcyA9IHNjYWxlcykNCmBgYA0KDQpgYGB7cn0NCiNLTEFTWUZJS0FDSkENCmlyaXMudHJhaW5pbmcuaW5kaWNpZXMgPC0gY3JlYXRlRGF0YVBhcnRpdGlvbihpcmlzJFNwZWNpZXMsIHAgPTAuODAsIGxpc3QgPSBGQUxTRSkNCmlyaXMudHJhaW5pbmcgPC0gaXJpc1tpcmlzLnRyYWluaW5nLmluZGljaWVzLF0NCmlyaXMudmFsaWRhdGlvbiA8LSBpcmlzWy1pcmlzLnRyYWluaW5nLmluZGljaWVzLF0NCmJveHBsb3QoaXJpcy50cmFpbmluZyk7IGJveHBsb3QoaXJpcy52YWxpZGF0aW9uKQ0KDQpjb250cm9sIDwtIHRyYWluQ29udHJvbChtZXRob2QgPSAiY3YiLCBudW1iZXIgPSAxMCkNCm1ldHJpYyA8LSAiQWNjdXJhY3kiDQoNCmxpYnJhcnkoTUFTUykNCnNldC5zZWVkKDcpDQpmaXQubGRhIDwtIHRyYWluKFNwZWNpZXN+LiwgZGF0YSA9IGlyaXMudHJhaW5pbmcsIG1ldGhvZCA9ICJsZGEiLCBtZXRyaWMgPSBtZXRyaWMsIHRyQ29udHJvbCA9IGNvbnRyb2wpDQoNCnNldC5zZWVkKDcpDQpmaXQuY2FydCA8LSB0cmFpbihTcGVjaWVzfi4sIGRhdGEgPSBpcmlzLnRyYWluaW5nLCBtZXRob2QgPSAicnBhcnQiLCBtZXRyaWMgPSBtZXRyaWMsIHRyQ29udHJvbCA9IGNvbnRyb2wpDQoNCnNldC5zZWVkKDcpDQpmaXQua25uIDwtIHRyYWluKFNwZWNpZXN+LiwgZGF0YSA9IGlyaXMudHJhaW5pbmcsIG1ldGhvZCA9ICJrbm4iLCBtZXRyaWMgPSBtZXRyaWMsIHRyQ29udHJvbCA9IGNvbnRyb2wpDQoNCnNldC5zZWVkKDcpDQpmaXQuc3ZtIDwtIHRyYWluKFNwZWNpZXN+LiwgZGF0YSA9IGlyaXMudHJhaW5pbmcsIG1ldGhvZCA9ICJzdm1SYWRpYWwiLCBtZXRyaWMgPSBtZXRyaWMsIHRyQ29udHJvbCA9IGNvbnRyb2wpDQoNCnNldC5zZWVkKDcpDQpmaXQucmYgPC0gdHJhaW4oU3BlY2llc34uLCBkYXRhID0gaXJpcy50cmFpbmluZywgbWV0aG9kID0gInJmIiwgbWV0cmljID0gbWV0cmljLCB0ckNvbnRyb2wgPSBjb250cm9sKQ0KDQpwcmludChmaXQubGRhKQ0KcHJpbnQoZml0LmNhcnQpDQpwcmludChmaXQua25uKQ0KcHJpbnQoZml0LnN2bSkNCnByaW50KGZpdC5yZikNCg0KZml0LmtubiRiZXN0VHVuZQ0KDQpyZXN1bHRzIDwtIHJlc2FtcGxlcyhsaXN0KGxkYSA9IGZpdC5sZGEsIGNhcnQgPSBmaXQuY2FydCwga25uID0gZml0Lmtubiwgc3ZtID0gZml0LnN2bSwgcmYgPSBmaXQucmYpKQ0Kc3VtbWFyeShyZXN1bHRzKQ0KZG90cGxvdChyZXN1bHRzKQ0KDQppcmlzLnByZWRpY3Rpb24ubGRhIDwtIHByZWRpY3QoZml0LmxkYSwgaXJpcy52YWxpZGF0aW9uWywxOjRdKQ0KaXJpcy5wcmVkaWN0aW9uLmxkYQ0KY29uZnVzaW9uTWF0cml4KGlyaXMucHJlZGljdGlvbi5sZGEsIGlyaXMudmFsaWRhdGlvbiRTcGVjaWVzKQ0KDQppcmlzLnByZWRpY3Rpb24uY2FydCA8LSBwcmVkaWN0KGZpdC5jYXJ0LCBpcmlzLnZhbGlkYXRpb25bLDE6NF0pDQppcmlzLnByZWRpY3Rpb24uY2FydCAhPSBpcmlzLnByZWRpY3Rpb24ubGRhDQpjb25mdXNpb25NYXRyaXgoaXJpcy5wcmVkaWN0aW9uLmNhcnQsIGlyaXMudmFsaWRhdGlvbiRTcGVjaWVzKQ0KDQpgYGANCmBgYHtyfQ0KaXJpcy5kYXRhIDwtIGlyaXNbLDE6NF0NCmlyaXMuc3BlY2llcyA8LSBpcmlzWyw1XQ0KDQpoZWFkKGlyaXMuZGF0YSkNCg0Kbm9ybWFsaXplIDwtIGZ1bmN0aW9uKHgpDQp7DQogIHJldHVybigoeC1taW4oeCkpLyhtYXgoeCktbWluKHgpKSkNCn0NCg0KaXJpcy5kYXRhJFNlcGFsLkxlbmd0aCA8LSBub3JtYWxpemUoaXJpcy5kYXRhJFNlcGFsLkxlbmd0aCkNCmlyaXMuZGF0YSRTZXBhbC5XaWR0aCA8LSBub3JtYWxpemUoaXJpcy5kYXRhJFNlcGFsLldpZHRoKQ0KaXJpcy5kYXRhJFBldGFsLkxlbmd0aCA8LSBub3JtYWxpemUoaXJpcy5kYXRhJFBldGFsLkxlbmd0aCkNCmlyaXMuZGF0YSRQZXRhbC5XaWR0aCA8LSBub3JtYWxpemUoaXJpcy5kYXRhJFBldGFsLldpZHRoKQ0KaGVhZChpcmlzLmRhdGEpDQoNCmdydXB5IDwtIGttZWFucyhpcmlzLmRhdGEsIDMpDQpwcmludChncnVweSkNCmdydXB5JHNpemUNCmdydXB5JGNsdXN0ZXINCg0KcGFyKG1mcm93PWMoMiwyKSwgbWFyPWMoNSw0LDIsMikpDQpwbG90KGlyaXMuZGF0YVtjKDEsMildLCBjb2w9Z3J1cHkkY2x1c3RlcikNCnBsb3QoaXJpcy5kYXRhW2MoMSwyKV0sIGNvbD1pcmlzLnNwZWNpZXMpDQoNCnBsb3QoaXJpcy5kYXRhW2MoMyw0KV0sIGNvbD1ncnVweSRjbHVzdGVyKQ0KcGxvdChpcmlzLmRhdGFbYygzLDQpXSwgY29sPWlyaXMuc3BlY2llcykNCg0KdHJhZm5vc2MgPC0gdGFibGUoZ3J1cHkkY2x1c3RlciwgaXJpcy5zcGVjaWVzKQ0KDQpwYXIoKQ0KaGVhdG1hcCh0cmFmbm9zYywgc2NhbGU9ImNvbHVtbiIsIENvbHYgPSBOQSwgUm93diA9IE5BKQ0KYGBgDQoNCg==