01. mpg์˜ ์—”์ง„ํฌ๊ธฐ(displ)๊ฐ€ ๊ณ ์†๋„๋ก์ฃผํ–‰๋งˆ์ผ(hwy)์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”๊ฐ€?    
<์กฐ๊ฑด1> ๋‹จ์ˆœ์„ ํ˜•ํšŒ๊ท€๋ชจ๋ธ ์ƒ์„ฑ 
<์กฐ๊ฑด2> ํšŒ๊ท€์„  ์‹œ๊ฐํ™” 
<์กฐ๊ฑด3> ํšŒ๊ท€๋ถ„์„ ๊ฒฐ๊ณผ ํ•ด์„ : ๋ชจ๋ธ ์œ ์˜์„ฑ๊ฒ€์ •, ์„ค๋ช…๋ ฅ, x๋ณ€์ˆ˜ ์œ ์˜์„ฑ ๊ฒ€์ •  

library(ggplot2)
data(mpg) # ์ž๋™์ฐจ์—ฐ๋น„ 
str(mpg)

 

x = mpg$displ # ๋…๋ฆฝ๋ณ€์ˆ˜ 
y = mpg$hwy # ์ข…์†๋ณ€์ˆ˜

 

๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋งŒ๋“ค๊ธฐ 

df = data.frame(x, y) 
head(df)

mpg_lm = lm(y ~ x, data = df)
mpg_lm
mpg_lm$fitted.values[1:6]

plot(x, y, data = df)
abline(mpg_lm, col = 'red')

 

summary(mpg_lm)

๋ชจ๋ธ ์œ ์˜์„ฑ๊ฒ€์ • : ํ†ต๊ณ„์ ์œผ๋กœ ์œ ์˜ํ•จ  
์„ค๋ช…๋ ฅ : 0.585  
x๋ณ€์ˆ˜ ์œ ์˜์„ฑ ๊ฒ€์ • : ์œ ์˜๋ฏธํ•œ ์ˆ˜์ค€์—์„œ ์—”์ง„ํฌ๊ธฐ๋Š” ์ฃผํ–‰๋งˆ์ผ์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

 

 


02. product ๋ฐ์ดํ„ฐ์…‹์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ๋‹ค์ค‘ํšŒ๊ท€๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜์‹œ์˜ค.

product = read.csv("product.csv", header=TRUE)


 ๋‹จ๊ณ„1 : ํ•™์Šต๋ฐ์ดํ„ฐ(train),๊ฒ€์ •๋ฐ์ดํ„ฐ(test)๋ฅผ 7 : 3 ๋น„์œจ๋กœ ์ƒ˜ํ”Œ๋ง

idx <- sample(1:nrow(product), 0.7*nrow(product))
train <- product[idx,] # result์ค‘ 70%
dim(train) # [1] 184   3
train # ํ•™์Šต๋ฐ์ดํ„ฐ
test <- product[-idx, ]
dim(test) # 80  3


๋‹จ๊ณ„2 : ํ•™์Šต๋ฐ์ดํ„ฐ ์ด์šฉ ํšŒ๊ท€๋ชจ๋ธ ์ƒ์„ฑ 
๋ณ€์ˆ˜ ๋ชจ๋ธ๋ง) y๋ณ€์ˆ˜ : ์ œํ’ˆ_๋งŒ์กฑ๋„, x๋ณ€์ˆ˜ : ์ œํ’ˆ_์ ์ ˆ์„ฑ, ์ œํ’ˆ_์นœ๋ฐ€๋„

model = lm(formula = ์ œํ’ˆ_๋งŒ์กฑ๋„ ~ ., data = train)


๋‹จ๊ณ„3 : ๊ฒ€์ •๋ฐ์ดํ„ฐ ์ด์šฉ ๋ชจ๋ธ ์˜ˆ์ธก์น˜ ์ƒ์„ฑ 

y_pred = predict(model, test)
y_true = test$'์ œํ’ˆ_๋งŒ์กฑ๋„'


๋‹จ๊ณ„4 : ๋ชจ๋ธ ํ‰๊ฐ€ : cor()ํ•จ์ˆ˜ ์ด์šฉ  

cor(y_true, y_pred)^2 

y_true[1:10]
y_pred[1:10]

mse <- mean( (y_true - y_pred)^2 )
cat('MSE =', mse)

 

 

 



03. ggplot2ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” diamonds ๋ฐ์ดํ„ฐ ์…‹์„ ๋Œ€์ƒ์œผ๋กœ carat, table, depth ๋ณ€์ˆ˜ ์ค‘ ๋‹ค์ด์•„๋ชฌ๋“œ์˜ ๊ฐ€๊ฒฉ(price)์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ด€๊ณ„๋ฅผ ๋‹ค์ค‘ํšŒ๊ท€ ๋ถ„์„์„ ์ด์šฉํ•˜์—ฌ ์˜ˆ์ธกํ•˜์‹œ์˜ค.
์กฐ๊ฑด1) ๋‹ค์ด์•„๋ชฌ๋“œ ๊ฐ€๊ฒฉ ๊ฒฐ์ •์— ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ณ€์ˆ˜๋Š”?
์กฐ๊ฑด2) ๋‹ค์ค‘ํšŒ๊ท€ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์ •(+)๊ณผ ๋ถ€(-) ๊ด€๊ณ„๋กœ ํ•ด์„ค

library(ggplot2)
data(diamonds)


diamonds์—์„œ ๋น„์œจ์ฒ™๋„ ๋Œ€์ƒ์œผ๋กœ ์‹ ์ž‘์„ฑ 

formula = price ~ carat +  table + depth
head(diamonds)

model = lm(formula, data=diamonds) 

summary(model) #ํšŒ๊ท€๋ถ„์„ ๊ฒฐ๊ณผ

[ํ•ด์„ค] carat์€ price์— ์ •(+)์˜ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ , table๊ณผ depth๋Š” ๋ถ€(-)์˜ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

+ Recent posts