AIoT

AIoT 정규 17일차

맥기짱짱 2024. 1. 22. 16:35

1. Iris 데이터 분석 (p.166)

R 프로그램을 사용한다

 

# 1)  내장 데이터 세트 가져오기
data("iris") 

# 2) 데이터 세트 확인하기
iris 
>>>
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1            5.1         3.5          1.4         0.2     setosa
2            4.9         3.0          1.4         0.2     setosa
3            4.7         3.2          1.3         0.2     setosa
4            4.6         3.1          1.5         0.2     setosa
5            5.0         3.6          1.4         0.2     setosa
6            5.4         3.9          1.7         0.4     setosa
... 생략...
148          6.5         3.0          5.2         2.0  virginica
149          6.2         3.4          5.4         2.3  virginica
150          5.9         3.0          5.1         1.8  virginica

# 3) 데이터 구조 확인하기: 
str(iris)
>>>
'data.frame':   150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
 
 # 4) 데이터 세트 컬럼 및 관측치 확인하기
 ncol(iris) # 데이터 프레임 컬럼(열) 개수를 확인
 >>>[1] 5
 nrow(iris) # 데이터 프레임 관측치(행) 개수를 확인
 >>>[1] 150
 dim(iris) # 데이터 프레임 칼럼(열) 및 관측치(행) 개수를 확인
 >>>[1] 150   5
 
 # 5) 데이터 세트 컬럼명 확인하기
 ls(iris)
 >>>[1] "Petal.Length" "Petal.Width"  "Sepal.Length" "Sepal.Width"  "Species"     

 # 6) 데이터 앞부분과 둣부분 값 확인하기
 # head(변수명, n = 수량) or tail(변수명, n = 수량)
 head(iris)
 >>>
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

tail(iris)
>>>
    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
145          6.7         3.3          5.7         2.5 virginica
146          6.7         3.0          5.2         2.3 virginica
147          6.3         2.5          5.0         1.9 virginica
148          6.5         3.0          5.2         2.0 virginica
149          6.2         3.4          5.4         2.3 virginica
150          5.9         3.0          5.1         1.8 virginica

# 7) 평균과 중앙값
# mean(데이터 프레임명$변수명): 평균, median(데이터 프레임명$변수명): 중앙값
mean(iris$Sepal.Length) # 평균 구하기
>>>[1] 5.843333

median(iris$Sepal.Length) # 중앙값 구하기
>>>[1] 5.8

# 8) 최솟값과 최댓값의 범위
min(iris$Sepal.Length) # 최소값
>>>[1] 4.3

max(iris$Sepal.Length) # 최댓값
>>>[1] 7.9

range(iris$Sepal.Length) # 함수의 범위 즉 최댓값에서 최솟값의 범위
>>>[1] 4.3 7.9

# 9) 분위수: quantile(변수명, probs = 0 ~ 1)
# 제 1사분위수(Q1): 제0.25분위수, 하위 25%의 값
# 제 2사분위수(Q2): 제0.50분위수, 하위 50%의 값
# 제 3사분위수(Q3): 제0.75분위수, 하위 75%, 상위 25%의 값
# 제 4사분위수(Q4): 제1분위수, 100%에 해당하는 값

quantile(iris$Sepal.Length) # 사분위수
>>>
  0%  25%  50%  75% 100% 
 4.3  5.1  5.8  6.4  7.9 
 
quantile(iris$Sepal.Length, probs = 0.25) # 제1사분위수
>>>
25% 
5.1 

quantile(iris$Sepal.Length, probs = 0.50) # 제2사분위수
>>>
50% 
5.8 

quantile(iris$Sepal.Length, probs = 0.75) # 제3사분위수
>>>
75% 
6.4 

quantile(iris$Sepal.Length, probs = 0.80) #제0.8분위수: 하위 80%지점의 값
>>>
 80% 
6.52 

# 10) 분산 및 표준편차
var(iris$Sepal.Length) # 분산값
>>>[1] 0.6856935

sd(iris$Sepal.Length) # 표준편차값
>>>[1] 0.8280661

# 11) 첨도(kurtosis)와 왜도(skewness)
# 그전에 psych 패키지를 설치후 로드해야 한다
install.packages("psych")
library(psych)
>>>

kurtosi(iris$Sepal.Length) # 첨도
>>>[1] -0.6058125 

skew(iris$Sepal.Length) # 왜도
>>>[1] 0.3086407

# 11) 데이터 빈도분석(Data Frequency Analysis)
# descr 패키지 설치
install.packages("descr")
library(descr)

freq_test <- freq(iris$Sepal.Length, plot = F)
freq_test
>>>
iris$Sepal.Length 
      Frequency  Percent
4.3           1   0.6667
4.4           3   2.0000
4.5           1   0.6667
4.6           4   2.6667
----------생략----------
7.7           4   2.6667
7.9           1   0.6667
Total       150 100.0000

 

 - 용어 정리

• 데이터 요약: 데이터 구조를 한눈에 확인하거나 데이터 일부의 값을 확인하는 것

• 기술통계량: 데이터를 요약한 대푯값, 데이터를 의미 있는 수치로 요약해 데이터 특성을 파악할 수 있다.

• 평균: 데이터를 모두 더한 값을 개수로 나눈 값

• 중앙값: 데이터를 크기 순으로 정렬했을 때 가운데 있는 값

• 분산: 데이터가 평균으로부터 퍼진 정도를 설명하는 통계량

• 표준편차: 데이터 값이 퍼진 정도를 설명하는 통계량

• 첨도: 데이터 분포가 정규분포 대비 뾰족한 정도를 설명하는 통계량

• 왜도: 데이터 분포의 비대칭 정도를 설명하는 통계량

• 빈도분석: 데이터 분포를 파악할 때 데이터 빈도 및 빈도 비율을 나타내는 분석

함수 기능
data() R 내장 데이터 세트를 확인
str() 데이터 구조 확인
ncol() 데이터 프레임 컬럼(열) 개수 확인
nrow() 데이터 프레임 관측치(행) 개수 확인
dim() 데이터 프레임 컬럼(열)의 개수와 관측치(행)의 개수 확인
ls() 데이터 칼럼명 확인
head() 데이터 앞부분 확인
tail() 데이터 뒷부분 확인
mean() 평균값 확인
median() 중앙값 확인
min() 최솟값 확인
max() 최댓값 확인
range() 최솟값과 최댓값의 범위 확인
quantile() 분위수 확인
var() 분산 확인
sd() 표준편차 확인
kurtosi() 첨도 확인
skew() 왜도 확인
freq() 빈도 확인

 

2. Java 찍먹 부먹

 

public class Main {

	public static void main(String[] args) {
		int hour = 3;
		int minute = 5;
		System.out.println(hour + "시간" + minute + "분");
		
		int totalMinute = (hour * 60) + minute;
		System.out.println("총" + totalMinute + "분");
	}

}
3시간5분
총185분

'AIoT' 카테고리의 다른 글

AIoT 정규 19일차  (1) 2024.01.24
AIoT 정규 18일차  (1) 2024.01.23
AIoT 정규 16일차  (0) 2024.01.19
AIoT 정규 15일차  (0) 2024.01.18
AIoT 정규 13일차  (0) 2024.01.16