LG DX DATA SCHOOL

12/29 통계 기반 데이터 분석 (넘파이/ 판다스)

getfeelingsfrom 2025. 12. 29. 17:50

12/29

 

IT뉴스 공하기 

 

1.파운데이션 모델 

: 아주 큰 데이터로 먼저 학습해 두고, 여러 작업에 재사용하는 범용 AI 모델

  • 대규모 사전학습: 텍스트·이미지·음성 등 방대한 데이터로 먼저 학습
  • 재사용 가능: 번역, 요약, 검색, 분석 등 다양한 작업에 활용
  • 미세조정(Fine-tuning): 목적에 맞게 조금만 추가 학습하면 됨

12월 30일, 코엑스에서 5개 팀
( NaverCloud, UpStage, SK telecom, ncAI, LG AI Research )이
개발한 AI 모델을 대국민 공개 발표

 

발표회는 평가에는 미반영, 기술 방향성 공개 목적

전문가 평가로 성능·기술 완성도·확장성·상용화 계획 검증

글로벌 최신 AI 대비 95% 이상 성능이 기준

5개 팀 → 4개 팀으로 압축

결과는 내년 1월 중순 발표 목표

특히 각 팀은 서로 다른 기술 구조와 중장기 로드맵 전략을 제시하고 있다

파운데이션 모델 = 범용 모델 ~ 튜닝 

 

 

 

2. 양자 컴퓨터

일반 컴퓨터 양자 컴퓨터
  • 비트(bit) 사용
  • 값은 0 또는 1 하나뿐
  • 순차적으로 계산
  • 큐비트(qubit) 사용
  • 0과 1을 동시에 가질 수 있음(중첩)
  • 여러 큐비트가 서로 연결되어 동시에 계산(얽힘)

  • 중첩(Superposition): 0과 1을 동시에 표현
  • 얽힘(Entanglement): 큐비트들이 강하게 연결돼 함께 반응
  • 간섭(Interference): 정답 확률은 키우고 오답은 줄임

    모든 정보를 가지고 있으므로 연산속도가 높아짐 (비효율적일 수도) 

 

러시아 **로사톰**과 모스크바국립대 연구진이
중성 루비듐 원자 기반 72큐비트 양자컴퓨터 시제품을 개발했다.

이 시제품은 레이저로 중성 원자를 하나씩 포획해 큐비트로 사용하는 방식이며, 2큐비트 연산 정확도 94%를 기록했다.

중성 원자 방식은 큐비트 확장에 유리하지만 제어가 어려운 기술로 알려져 있는데, 이번 성과는 큐비트 수 확대와 연산 신뢰도 향상을 동시에 보여준 사례로 평가된다. 또한 연산·저장·판독을 분리한 새 하드웨어 구조를 적용해

향후 실용적 양자 실험 가능성을 높였다는 점이 핵심이다.

얽힘, 중첩 => 의존적인데 시퀀스 처리에는 유리 

 

 


 


리스트(List)

  • 순서가 있는 데이터 저장 구조
  • 인덱스를 통해 값에 접근 가능
  • 중복된 값 허용
  • 데이터의 위치(인덱스)가 중요할 때 사용
  • 대표적인 정형 구조 데이터 처리에 적합

 

튜플(Tuple)

  • 다수의 데이터를 저장하지만 값 변경 불가능(immutable)
  • 기본(default) 형태로 사용되는 경우 많음
  • 데이터가 변하지 않아야 할 때 안정적으로 사용 가능

 

딕셔너리(Dictionary)

  • Key–Value 구조
  • 위치(인덱스)가 아닌 키를 통해 데이터 접근
  • 빠른 검색이 필요할 때 유리
  • 비정형 데이터 구조를 다룰 때 자주 활용

 

셋(Set)

  • 중복 값 제거
  • 순서 없음
  • 집합 연산(합집합, 교집합 등)에 적합
  • {} 형태 사용

성능 관련 개념

  • Delay Complexity
    • 같은 양의 데이터를 얼마나 빠르게 처리하는가
    • 알고리즘과 자료구조 선택에 따라 큰 차이 발생
  • Throughput
    • 정해진 시간 안에 얼마나 많은 데이터를 처리할 수 있는가
    • 대용량 데이터 분석에서 중요한 성능 지표

 


데이터 분석은 수학적 연산 기반
벡터, 행렬 중심의 자료구조 필요-> 이를 위해 NumPy가 등장

 

 

NumPy의 역할

  • 내부적으로 모든 데이터를 행렬(Matrix) 형태로 처리
  • 빠른 연산 가능 (C 기반)
  • 실제 분석 단계에서는 NumPy 구조가 핵심

 

일반적인 데이터 흐름

  • 사용자가 리스트·딕셔너리 등 익숙한 구조로 데이터 핸들링
  • 데이터 상태 점검
    • 쓸만한 데이터인지
    • 데이터 양은 어느 정도인지
    • 분석 단계에서 NumPy 배열로 변환
    • 컴퓨터는 결국 연산을 위한 행렬만 존재

 

손실이 나지 않는 자료형 변환

  • 데이터 분석과 딥러닝에서는
    정보 손실이 발생하지 않는 방향으로 자료형을 변환하는 것이 중요하다.
  • 작은 범위 → 큰 범위 자료형으로 변환
    (예: int → float)
  • 목적: 연산의 안정성과 정확성 확보
  • 특히 딥러닝은 연산 중심 구조 => 자료형 선택이 곧 성능과 결과에 직결된다.

 

딥러닝과 연산

  • 딥러닝 모델의 내부는 거의 전부가
    • 덧셈
    • 곱셈
    • 행렬 연산
      으로 구성되어 있다.
  • 따라서 연산에 최적화된 자료구조가 필수이며,
    이 역할을 담당하는 것이 바로 **NumPy 배열(ndarray)**이다.


선형 대수학 = 일관된 방향을 가지고 있다는 의미`~ 데이터가 단순해야가능  => 예측하기가 쉽다 

 NumPy

1. 넘파이는 왜 쓰는가?

  • 숫자·행렬 연산 전용 라이브러리
  • 파이썬 기본 자료구조보다 훨씬 빠른 계산
  • 데이터 분석·딥러닝의 연산 엔진

 

2. ndarray (넘파이 배열)

  • 넘파이의 핵심 객체
  • 모든 원소의 자료형이 동일
  • 정수·실수만 저장
  • 인덱싱, 슬라이싱 가능
  • 메모리에 연속적으로 저장 → 빠름

 

3.  Rank & Shape

  • Rank (차원): 배열의 차원 수
  • 스칼라(0차원), 벡터(1차원), 행렬(2차원), 텐서(3차원↑)
  • Shape: 배열의 구조
    예: (2, 3) → 2행 3열
  •  rank = ndim, shape = 구조
  • 높이, 행, 열 순서대로 연결해야 됨 


4. 자료형(dtype)

  • 배열 생성 시 dtype 지정 가능
  • 연산 정확도를 위해
  • 작은 타입 → 큰 타입 변환 권장
    (예: int → float)
  • astype()으로 형 변환


5. 중요한 배열 속성

  • ndim : 차원 수
  • shape : 배열 모양
  • dtype : 자료형
  • size : 전체 원소 수
  • T : 전치 행렬 (행↔열)


6. 브로드캐스팅

  • 서로 다른 shape의 배열도 연산 가능
  • 작은 배열을 자동으로 늘려 계산 


7. 마스킹 (Boolean Indexing)

  • 조건으로 데이터 선택
  • 통계·필터링에 매우 중요
  • arr[arr > 0]

 

8. 복사 개념 (중요)

  • = → 얕은 복사 (같은 주소)
  • .copy() → 깊은 복사 (완전 분리)

 

PANDAS ( 판다스 )

1. 데이터프레임(DataFrame)

  • 행(row)과 열(column)로 구성된 표 형태의 자료구조
  • 엑셀 시트와 가장 유사
  • 데이터 분석에서 가장 많이 사용하는 구조
  • 내부적으로는 NumPy ndarray 기반


2. 데이터프레임 기본 구성

  • 행 인덱스(Index): 각 행을 구분
  • 열(Column): 변수(특성)
  • 값(Value): 실제 데이터
행 인덱스 | 열1 | 열2 | 열3

 


3. 데이터프레임 생성 방법

  • 리스트
  • 딕셔너리
  • NumPy 배열
  • CSV 파일 (read_csv())


4. 데이터 확인 

  • head() / tail() : 앞·뒤 데이터 확인
  • columns : 열 이름 확인
  • shape : (행, 열) 크기
  • info() : 자료형, 결측치 확인
  • describe() : 통계 요약



5. 데이터 조회

  • 열 기준
df['열이름']
df[['열1','열2']]

 

  • 행/열 위치 기준
df.iloc[행, 열]
df.loc[조건, 열]

 


6. 조건 검색 

df[df['키'] > 180]
df[(df['성별']=='여자') & (df['키'] > 160)]
df[df['이름'].str.contains('봄')]

 

->  비정형 데이터를 숫자로 바꿔야 조건 계산 가능

7. 정렬

sort_values() : 열 기준 정렬
sort_index() : 인덱스 기준 정렬
df.sort_values(by='키', ascending=False)


8. 데이터 수정

  • 값 변경: loc
  • 열 추가 / 삭제
  • 값 치환: replace()
df['보너스'] = df['나이'] * 10000
df.drop('보너스', axis=1)


9. 그룹 분석

df.groupby('성별')['키'].mean()
df.groupby('성별')['키'].std()

 

->집계 분석의 핵심 도구

10. 데이터 분석 흐름 CSV → DataFrame
① head(), info()로 데이터 확인
② 자료형 정리 (문자 → 숫자)
③ 조건 검색 / 정렬
④ 그룹화·통계
⑤ 필요 시 NumPy로 변환

 

 

 

열 이름 조회

  • describe( ) 함수로 열별 값의 개수, 빈도 수와 같은 통계를 확인
df.describe()



데이터 프레임은 객체이므로 .기능 으로 구현 가능함 

df2=df.sort_index(axis=0)
df3=df2.head()

대신,

df.sort_index(axis=0).head()

로 나타낼 수 있다. 


  • count는 값의 개수,
  • unique는 유일한 값의 개수,
  • top은 제일 개수가 많은 값이고,
  • freq는 빈도수(frequency)이므로 그 개수를 나타냄.

 


행 정렬

  • sort_values( ) 함수를 이용하여 특정 열을 기준으로 정렬.
#열 기준으로 정렬 #나이 열과 키 열을 기준으로 행을 정렬하기 
df.sort_values(by=['나이', '키'], ascending=False).head( )





데이터 조회 

  • 데이터프레임[조건식] #시리즈로 출력하기
  • 데이터프레임[[조건식]] #데이터프레임으로 출력하기
  • 데이터를 열이나 조건식을 기준으로 조회할 수 있음.   
  • 조건식 자리에 리스트 형식으로 원하는 열 이름을 적기
df['키']
#df[0] 불가
df[['이름', '키']].head( )


만약 df['이름', '키']라고 적으면 df[행, 열]이라고 보기 때문에 df[[이름, 키]] 라고 적어야함

type(df[['이름','키']]) #데이터프레임
type(df["이름"]) # 시리즈
type(df[["이름']]) # 데이터프레임



데이터 조회

  • iloc 함수를 사용하여 인덱스로 데이터를 조회할 수 있음
df.iloc[행 인덱스, 열 이름]
df.iloc[1:4, 0:3] #두 번째 행부터 네 번째 행의 첫 번째 열부터 세 번째 열을 조회.


=> 가독성 너무 안좋아서 loc 함수를 통해 구현 

df.loc[4,'키'] # 인덱스 번호 4번  = 위치상 5번째 행의 데이터 값 불러오기







데이터 타입이 object이기 때문에 연산 불가 따라서 데이터 타입 변경 필요 ! 

 

#위의 코드에서 키 변량은 실수형으로 변환해주세요
cols = ['나이','키']
# 키를 실수형으로 변환
df[cols]=df[cols].apply(pd.to_numeric, errors='coerce')
df['키'] = df['키'].astype(float)
df[cols].mean()

 

1. df[cols]

  • ['나이', '키'] 컬럼만 선택
  • 이 시점에서는 dtype이 object (문자열일 가능성 높음)


2 .apply(pd.to_numeric, errors='coerce')

  • 각 컬럼에 대해:
  • 숫자로 바꿀 수 있으면 → 숫자로 변환
  • 숫자로 못 바꾸면 → NaN 으로 처리

 

3. df[cols] = ...

  • 변환된 결과를 원본 DataFrame에 다시 저장
  • 이 시점부터: 평균, 합계, 표준편차 등 수치 연산 가능


 

추정 추론 통계학 




 1. 통계학의 분류
통계학은 크게 기술 통계학과 추정(추론) 통계학으로 나뉜다.


2. 기술 통계학 (Descriptive Statistics)

  • 주어진 자료 자체를 요약·정리하는 통계 기법
  • 데이터를 수집한 후 분포의 특징을 파악하는 것이 목적
  • 분석의 초기 단계에서 사용
  • 주요 내용
    • 평균, 분산, 표준편차
    • 중위수, 최빈값
    • 그래프 시각화
    • 왜도, 첨도



3. 추정(추론) 통계학 (Inferential Statistics)

  • 표본(Sample) 데이터를 이용해
  • 모집단(Population)에 대해 추론하는 통계 기법
  • 기술 통계 결과를 바탕으로 의사결정 수행
  • 주요 내용
    • 모수 추정(Estimation)
    • 가설 검정(Hypothesis Testing)
    • 예측(Prediction)
  • 기술 통계를 활용한 추론 과정

 


분산·표준편차가 큰 경우

  • 데이터가 평균에서 멀리 흩어져 있음
  • 값들의 변동성이 큼
  • 데이터가 불안정하거나 일관성이 낮음
  • 극단값(이상치)이 존재할 가능성 높음
  • 예측 정확도가 낮아질 수 있음

 

'LG DX DATA SCHOOL' 카테고리의 다른 글

12/31 데이터 시각화 라이브러리  (0) 2025.12.31
12/30 기술 통계학 + R  (0) 2025.12.30
12/24 상속, 정규 표현식  (1) 2025.12.24
12/23 객체 지향 복습 / 판다스 (Pandas)  (0) 2025.12.23
12/22 객체 지향  (0) 2025.12.22