| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- Typescript
- curl
- json
- docker
- Java
- vim
- pandas
- DataFrameGroupBy
- fit_transform
- CSS
- json schema
- FileChannel
- cli
- Vite
- tauri
- podman
- Webpack
- Python
- io
- UV
- 이미지
- Ollama
- yaml
- PowerShell
- scikit-learn
- 정렬
- scaler
- vscode
- RandomAccessFile
- Docker Compose
- Today
- Total
목록Data Science (12)
워로디스
1. 결론머신러닝에서 X는 여러 feature를 가진 입력 행렬이기 때문에 대문자로, y는 각 샘플의 정답을 나타내는 벡터이기 때문에 소문자로 쓰는 것이 일반적인 관습입니다.Python 자체에서 X는 대문자, y는 소문자로 써야 한다는 규칙은 없습니다.이 표기법은 주로 수학, 통계학, 머신러닝에서 사용해 온 관습에서 비롯되었습니다.머신러닝 코드에서는 일반적으로 다음과 같이 사용합니다.X = df[["age", "income", "height"]]y = df["target"]X: 모델에 입력되는 특성(feature) 데이터y: 모델이 예측하려는 정답 또는 타깃(target)2. 왜 X는 대문자인가?수학에서는 일반적으로 행렬(matrix)을 대문자로 표현하는 경우가 많습니다.머신러닝에서 X는 보통 여러 개의..
1. 먼저 알아야 할 것1.1 Feature Scaling이란?머신러닝 데이터에는 서로 단위가 다른 Feature가 함께 들어가는 경우가 많다.예를 들어:age : 18 ~ 80income : 30,000,000 ~ 500,000,000experience : 0 ~ 40age와 experience는 수십 단위인데 income은 수억 단위다.숫자가 크다고 해서 더 중요한 Feature라는 뜻은 아니다.하지만 어떤 머신러닝 알고리즘은 실제로 숫자의 크기 차이에 영향을 받는다.Feature Scaling은 이런 문제를 줄이기 위해 Feature들의 크기나 범위를 조정하는 과정이다.1.2 왜 필요한가?거리 기반 알고리즘예를 들어 두 사람의 차이가 다음과 같다고 하자.나이 차이 : ..
1. 개요머신러닝에서 데이터를 학습용 데이터와 검증용 데이터로 나눈 뒤 스케일링할 때 다음과 같은 코드를 자주 사용한다.from sklearn.preprocessing import RobustScalerrs = RobustScaler()X_train = rs.fit_transform(X_train)X_valid = rs.transform(X_valid)이 코드의 핵심 목적은 학습 데이터에서 스케일링 기준을 계산하고, 그 기준을 검증 데이터에도 동일하게 적용하는 것이다.2. fit()의 역할fit()은 데이터를 실제로 변환하는 것이 아니라, 변환에 필요한 기준을 데이터로부터 계산하는 과정이다.RobustScaler의 경우 각 feature에 대해 주로 다음 값을 계산한다.중앙값(Median)1사분위수(Q1..
DataFrameGroupBy 객체는 그대로 출력해도 내부 데이터가 보이지 않습니다.grouped = df.groupby("지역")print(grouped)# 대신 그룹 구조를 볼지, 각 그룹의 실제 데이터를 볼지, 집계 결과를 볼지에 따라 확인 방법을 선택하면 됩니다.1. 그룹 이름과 행 위치 확인: .groupsgrouped.groups예를 들어:{ "부산": Index([2, 3], dtype="int64"), "서울": Index([0, 1], dtype="int64")}각 그룹에 어떤 원본 인덱스가 포함됐는지 확인할 수 있습니다.그룹 키만 보고 싶다면:grouped.groups.keys()list(grouped.groups)2. 각 그룹의 실제 데이터 확인: 반복문가장 확실한 방법입니..
stack() / unstack()은 행과 열의 계층을 서로 이동시키는 함수입니다. 특히 MultiIndex가 있는 데이터를 변형할 때 사용합니다.핵심적으로 보면:stack() : 열 → 행 인덱스unstack() : 행 인덱스 → 열1. stack()은 언제 쓰나?가로로 넓게 퍼진 데이터를 세로로 길게 바꿀 때 사용합니다.import pandas as pddf = pd.DataFrame({ "국어": [90, 80], "수학": [85, 95]}, index=["철수", "영희"])print(df) 국어 수학철수 90 85영희 80 95df.stack()철수 국어 90 수학 85영희 국어 80 수학 95dtype: int64즉, 과목이 열에 ..
Pandas 라이브러리에서 데이터프레임의 구조를 변환할 때 사용하는 pivot과 pivot_table 메서드의 핵심 원리와 차이점, 그리고 올바른 사용 기준을 정리합니다.1. 피벗(Pivot)의 기본 원리피벗은 세로로 길게 나열된 데이터(Long format)를 가로로 넓은 교차표 형태(Wide format)로 재구조화하는 작업입니다. 이 과정에서 기존 데이터프레임의 컬럼들은 다음과 같이 3가지 역할로 재배치됩니다.Index (행 인덱스): 지정한 컬럼의 고유 값들이 새로운 데이터프레임의 세로축(행 기준)이 됩니다.Columns (열 헤더): 지정한 컬럼의 고유 값들이 가로로 펼쳐져 새로운 데이터프레임의 가로축(컬럼 이름)이 됩니다.Values (데이터 값): Index와 Columns가 만나는 교차점(..
Pandas에서 데이터프레임을 출력할 때 줄바꿈이 발생하는 것은 콘솔창의 기본 출력 너비가 제한되어 있기 때문입니다. 이를 해결하기 위해 Pandas의 set_option 함수를 사용하여 출력 설정을 변경할 수 있습니다.1. 출력 너비(Width) 확장데이터프레임이 줄바꿈 없이 가로로 넓게 출력되도록 전체 출력 폭을 늘리는 설정입니다. 숫자는 콘솔에 표시될 수 있는 문자(Character)의 개수를 의미합니다.import pandas as pd# 콘솔 출력 너비를 1000자로 확장 (필요에 따라 숫자 조절 가능)pd.set_option('display.width', 1000)2. 최대 출력 컬럼 수(Max Columns) 해제너비를 늘려도 전체 컬럼 수가 많을 경우, 줄바꿈 대신 중간 컬럼이 ...으로 ..
1. 관점의 차이: 방향성 vs 라벨 위치Pandas에서 메서드의 성격에 따라 axis를 바라보는 관점이 달라집니다.연산 함수 (sum, mean 등): 데이터를 계산하기 위해 "어느 축의 방향으로 이동할 것인가?"를 지시합니다.구조 변경 함수 (drop): 데이터를 삭제하기 위해 "어느 축에 있는 이름표(Label)를 찾을 것인가?"를 지시합니다.2. drop 함수에서의 axis 적용drop 메서드에서 axis는 특정 라벨을 찾기 위해 검색해야 할 인덱스(목차)의 대상을 지정합니다.drop(라벨, axis=0)탐색 대상: 0번 축 (행 인덱스, Row Index 묶음)수행 결과: 지정한 이름표를 찾아 해당 가로줄(행) 전체를 삭제합니다.drop(라벨, axis=1)탐색 대상: 1번 축 (컬럼 이름, C..