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. 양자 컴퓨터
| 일반 컴퓨터 | 양자 컴퓨터 |
|
|
러시아 **로사톰**과 모스크바국립대 연구진이
중성 루비듐 원자 기반 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 |