21. 모델을 개발하여 운영상황에서 실제 테스트를 할 때 모델 개발 데이터를 통해서는 높은 적중률을 보이지만 테스트 데이터에서는 적중률이 떨어져 적중률을 유지하지 못하는 것을 무엇이라고 하는가?
① 일반화
② 과대적합
③ 미적합
④ 과소평가
정답: 2
출처: [[01 데이터분석준전문가모의고사(ADsP) 1회.pdf]]
이 상황은 모델이 **모델 개발 데이터(training data)**에는 잘 맞지만, **테스트 데이터(test data)**나 새로운 데이터에는 성능이 저하되는 문제를 설명하고 있습니다. 이러한 현상을 **과대적합(overfitting)**이라고 합니다.
### 선택지 분석
1. **일반화(Generalization)**:
- 일반화는 모델이 새로운 데이터에 대해 잘 작동하는 능력을 의미합니다. 이 상황에서는 일반화가 잘 이루어지지 않았기 때문에, 이 용어는 부적절합니다.
2. **과대적합(Overfitting)**:
- **정답입니다**. 과대적합은 모델이 학습 데이터에 너무 잘 맞춰져 있어서, 새로운 데이터에 대해서는 성능이 저하되는 현상을 의미합니다. 즉, 모델이 학습 데이터의 패턴뿐만 아니라 노이즈까지 학습하여 복잡해진 결과, 일반화 능력이 떨어지는 것을 말합니다.
3. **미적합(Underfitting)**:
- 미적합은 모델이 학습 데이터에 충분히 맞지 않는 상태를 의미하며, 학습 데이터에서조차 성능이 좋지 않은 경우를 가리킵니다. 이 문제는 과대적합과 반대되는 개념입니다.
4. **과소평가(Underestimation)**:
- 과소평가는 특정 변수나 상황의 중요성을 실제보다 낮게 평가하는 것을 의미하며, 모델 성능에 관한 설명과는 직접적인 관련이 없습니다.
### 결론
**정답은 ②번 과대적합(Overfitting)**입니다.
---
23. 다음 중 아래의 R코드를 수행한 결과에 대한 설명으로 옳은 것은?
```r
> c(2, 4, 6, 8) + c(1, 3, 5, 7, 9)
```
① 경고 메시지와 함께 결과가 출력된다.
② 4개의 숫자로 이루어진 벡터가 출력된다.
③ 9개의 숫자로 이루어진 벡터가 출력된다.
④ 에러 메시지가 출력되고, 명령 수행이 중단된다.
정답: 1
출처: [[01 데이터분석준전문가모의고사(ADsP) 1회.pdf]]
주어진 R코드에서 두 벡터 `c(2, 4, 6, 8)`와 `c(1, 3, 5, 7, 9)`를 더하려고 시도하고 있습니다. 이 코드가 어떻게 작동하는지 이해하려면 R에서 벡터 연산의 규칙을 알아야 합니다.
### 벡터의 재활용 (Recycling)
R에서는 두 벡터의 길이가 다를 때, 더 짧은 벡터가 더 긴 벡터의 길이에 맞게 **재활용(recycling)**됩니다. 즉, 짧은 벡터가 긴 벡터의 길이에 맞게 반복됩니다. 하지만, 벡터의 길이가 재활용될 때 길이가 정확히 일치하지 않으면 경고 메시지가 발생합니다.
### 주어진 코드 분석
- 첫 번째 벡터: `c(2, 4, 6, 8)` (길이 4)
- 두 번째 벡터: `c(1, 3, 5, 7, 9)` (길이 5)
길이가 4인 벡터와 길이가 5인 벡터를 더할 때, 4개의 요소가 있는 벡터가 5개의 요소가 있는 벡터에 맞게 반복됩니다. 즉, `c(2, 4, 6, 8)`은 `c(2, 4, 6, 8, 2)`로 재활용됩니다. 이로 인해 연산은 다음과 같이 수행됩니다:
r
Copy code
`c(2, 4, 6, 8, 2) + c(1, 3, 5, 7, 9) # 결과는 c(3, 7, 11, 15, 11)`
이 경우, 벡터의 길이가 일치하지 않기 때문에 R은 다음과 같은 **경고 메시지**를 출력하면서 결과를 반환합니다.
### 결론
- **결과:** 경고 메시지와 함께 결과가 출력됩니다.
**정답은 ①번**입니다.
---
43. 아래 데이터 셋 A, B 간의 유사성을 유클리드 거리로 계산하면?
![[01회 모의고사 그림 02.png]]
① 5
② √5
③ √25
④ √50
정답: 4
출처: [[01 데이터분석준전문가모의고사(ADsP) 1회.pdf]]
풀 수 있는 문제
---
22. 다음 중 R에서 사용 가능한 데이터 오브젝트에 관한 설명으로 가장 부적절한 것은?
① 차원을 가진 벡터를 행렬이라고 한다.
② 리스트에서 원소들은 다른 모드여도 상관없다.
③ 벡터에서 모든 원소는 같은 모드여야 한다.
④ 데이터 프레임은 테이블로 된 데이터 구조로써 행렬로 표현된다.
정답: 4
출처: [[02 데이터분석준전문가모의고사(ADsP) 2회.pdf]]
이 문제는 R에서 사용 가능한 데이터 오브젝트에 대한 이해를 묻고 있습니다. 각 선택지에 대해 분석해 보겠습니다.
### 선택지 분석
#### ① "차원을 가진 벡터를 행렬이라고 한다."
- **적절한 설명**입니다. R에서 행렬은 차원을 가진 벡터로 볼 수 있습니다. 벡터에 행과 열의 차원을 부여하면 행렬로 변환할 수 있습니다.
#### ② "리스트에서 원소들은 다른 모드여도 상관없다."
- **적절한 설명**입니다. 리스트는 R에서 서로 다른 모드(숫자, 문자, 논리값 등)를 포함할 수 있는 데이터 구조입니다. 즉, 리스트의 각 원소는 서로 다른 데이터 타입일 수 있습니다.
#### ③ "벡터에서 모든 원소는 같은 모드여야 한다."
- **적절한 설명**입니다. 벡터는 동일한 데이터 타입(모드)의 원소들로 이루어진 데이터 구조입니다. 예를 들어, 모든 원소가 숫자, 문자, 또는 논리값이어야 합니다.
#### ④ "데이터 프레임은 테이블로 된 데이터 구조로써 행렬로 표현된다."
- **부적절한 설명**입니다. 데이터 프레임은 행렬과 유사한 2차원 데이터 구조이지만, 각 열이 서로 다른 데이터 타입을 가질 수 있습니다. 행렬은 모든 원소가 동일한 데이터 타입이어야 하지만, 데이터 프레임은 열마다 다른 데이터 타입을 허용합니다. 따라서 데이터 프레임은 행렬로 표현된다고 보기 어렵습니다.
### 결론
**정답은 ④번**입니다. 데이터 프레임은 행렬과는 달리, 각 열이 서로 다른 데이터 타입을 가질 수 있는 2차원 데이터 구조이므로 "행렬로 표현된다"는 설명은 부적절합니다.
---
23. 다음 중 결과가 다른 R코드는?
① a <- c(1,10)
② b <- seq(1,10,1)
③ c <- 1:10
④ d <- seq(10,100,10)/10
정답: 1
출처: [[02 데이터분석준전문가모의고사(ADsP) 2회.pdf]]
주어진 R 코드에서 각 코드가 생성하는 결과를 분석해 보겠습니다.
### 각 코드 분석
#### ① `a <- c(1, 10)`
- **결과**: `a`는 벡터로, `[1, 10]`의 두 숫자를 포함합니다. 즉, `a`는 `1 10`으로 구성됩니다.
#### ② `b <- seq(1, 10, 1)`
- **결과**: `b`는 `1`부터 `10`까지 `1`씩 증가하는 숫자들의 시퀀스를 생성합니다. 즉, `b`는 `1 2 3 4 5 6 7 8 9 10`으로 구성됩니다.
#### ③ `c <- 1:10`
- **결과**: `c`는 `1`부터 `10`까지의 연속된 정수를 생성합니다. 즉, `c`는 `1 2 3 4 5 6 7 8 9 10`으로 구성됩니다. 이는 `b`와 동일한 결과를 생성합니다.
#### ④ `d <- seq(10, 100, 10)/10`
- **결과**: `d`는 `10`부터 `100`까지 `10`씩 증가하는 시퀀스를 생성한 후, 각 값을 `10`으로 나눈 벡터를 만듭니다. 즉, `d`는 `1 2 3 4 5 6 7 8 9 10`으로 구성됩니다. 이는 `b` 및 `c`와 동일한 결과를 생성합니다.
### 결론
- **①번**은 `[1, 10]`의 두 숫자로 이루어진 벡터를 생성합니다.
- **②, ③, ④번**은 모두 `1 2 3 4 5 6 7 8 9 10`이라는 동일한 시퀀스를 생성합니다.
**정답은 ①번**입니다. `a`는 `[1, 10]`이라는 두 개의 요소를 가진 벡터를 생성하며, 나머지 코드는 `1`부터 `10`까지의 연속적인 숫자 시퀀스를 생성하므로, 결과가 다릅니다.
---
24. 다음 중 R의 데이터 구조 중 벡터에서 숫자형 벡터, 문자형 벡터, 논리 연산자 벡터를 모두 합쳐 하나의 벡터를 구성하였을 경우 합쳐진 벡터의 형식으로 옳은 것은?
① 논리 연산자 벡터
② 숫자형 벡터
③ 문자형 벡터
④ 데이터 프레임
정답: 3
출처: [[05 제36회데이터분석준전문가자격검정시험복원문제.pdf]]
R에서는 벡터를 구성할 때, 서로 다른 데이터 타입을 하나의 벡터로 합치면 R은 자동으로 가장 **일반적인** 데이터 타입으로 변환하여 저장합니다. 이 변환 과정에서 **문자형(Character)** 데이터 타입이 가장 일반적이므로, 숫자형(Numeric) 벡터와 논리형(Logical) 벡터도 문자형으로 변환됩니다.
### 예시
예를 들어:
```r
x <- c(1, "a", TRUE)
```
이 코드를 실행하면 `x`는 문자형 벡터로 변환됩니다:
```r
x # [1] "1" "a" "TRUE"
```
### 선택지 분석
1. **① 논리 연산자 벡터**:
- 벡터의 요소 중 하나라도 문자형 데이터가 포함되면 전체 벡터는 문자형 벡터로 변환되기 때문에 부적절합니다.
2. **② 숫자형 벡터**:
- 문자형 데이터가 포함된 경우, 벡터는 문자형으로 변환되므로 부적절합니다.
3. **③ 문자형 벡터**:
- **적절한 설명**입니다. 문자형 데이터가 포함되면, R은 벡터 전체를 문자형으로 변환합니다.
4. **④ 데이터 프레임**:
- 데이터 프레임은 벡터와는 다른 데이터 구조로, 데이터 프레임을 생성하지는 않으므로 부적절합니다.
### 결론
**정답은 ③번**입니다. 숫자형 벡터, 문자형 벡터, 논리 연산자 벡터를 합치면 R에서는 최종적으로 **문자형 벡터**로 변환됩니다.