# 데이터 불러오기
iris <- read.csv("c:\\data\\iris2.csv", stringsAsFactors=T)
head(iris)
str(iris)
# 최대 최소 정규화하는 함수 생성
normalize <- function(x) {
return( (x - min(x)) / (max(x) - min(x)) )
}
# 생성한 최대 최소 정규화 함수를 활용하여 iris 1~4번째 변수 최대 최소 정규화 시킴
iris_n <- as.data.frame(lapply(iris[ , 1:4], normalize))
iris_n
# 최대 최소 정규화한 변수를 iris 종속 변수와 합침
iris2 <- cbind(iris_n, iris[ , 5])
iris2
summary(iris2)
summary(iris)
# iris와 iris2의 히스토그램 비교
hist_before <- ggplot(iris, aes(x = Sepal.Length)) +
geom_histogram(binwidth = 1, fill = 'blue', alpha = 0.7) +
ggtitle("Before Min-Max Normalization") +
theme_minimal()
hist_after <- ggplot(iris2, aes(x = Sepal.Length)) +
geom_histogram(binwidth = 0.05, fill = 'red', alpha = 0.7) +
ggtitle("After Min-Max Normalization") +
theme_minimal()
# 그래프 출력
library(gridExtra)
grid.arrange(hist_before, hist_after, ncol = 2)