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에서는 최종적으로 **문자형 벡터**로 변환됩니다.