| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- docker
- Ollama
- Typescript
- FileChannel
- vscode
- yaml
- json schema
- scaler
- Java
- tauri
- 열선택
- Docker Compose
- Webpack
- vim
- scikit-learn
- RandomAccessFile
- io
- Python
- cli
- 이미지
- curl
- Vite
- CSS
- 정렬
- podman
- pandas
- json
- UV
- PowerShell
- drop_first
- Today
- Total
목록Data Science (17)
워로디스
pandas가 헷갈리는 이유는 비슷한 대괄호 문법이 상황에 따라 다르게 해석되기 때문입니다. 핵심은 df[...]와 .loc[...]의 해석 기준이 서로 다르다는 점입니다.1. df[...]는 안에 들어온 값의 종류에 따라 의미가 달라진다df['Fare']'Fare'는 열 이름이므로 열 선택입니다.df[['Fare', 'Age']]열 이름들의 리스트이므로 역시 열 선택입니다.반면:df[df['Fare'] 먼저df['Fare'] 의 결과는 다음과 같은 Boolean Series입니다.0 True1 True2 False3 True...그리고 pandas는df[boolean_series]형태를 만나면 Boolean 값에 따라 행을 필터링합니다.따라서:df[df['Fare'] 은Fa..
value_counts()는 Pandas에서 범주형 데이터의 분포를 빠르게 확인할 때 가장 자주 쓰는 함수 중 하나입니다. 핵심은 보통 DataFrame 전체보다 특정 컬럼(Series)에 사용하는 경우가 훨씬 많다는 점입니다.1. 가장 기본적인 사용: 값별 개수 세기df['Sex'].value_counts()예:Sexmale 577female 314Name: count, dtype: int64해석:male이 577개female이 314개즉, SQL의 GROUP BY + COUNT()와 비슷한 용도로 생각하면 됩니다.SELECT Sex, COUNT(*)FROM dfGROUP BY Sex;Titanic처럼 범주형 변수가 있는 데이터에서 가장 흔하게 사용합니다.df['Survived'].val..
범주형 변수가 Red, Blue, Green 세 가지 값을 가진다고 해보겠습니다.원핫인코딩을 하면 다음처럼 표현됩니다.색상RedBlueGreenRed100Blue010Green001여기서 중요한 점은 세 열 중 두 열의 값만 알면 나머지 한 열도 자동으로 알 수 있다는 것입니다.예를 들어 Red 열을 제거하면:색상BlueGreenRed00Blue10Green01이제도 원래 범주를 완전히 구분할 수 있습니다.Blue=0, Green=0 → RedBlue=1, Green=0 → BlueBlue=0, Green=1 → Green즉, 첫 번째 범주의 열을 삭제한다고 해서 범주에 대한 정보가 사라지는 것은 아닙니다.삭제된 범주는 나머지 더미변수가 모두 0인 경우로 표현되며, 이를 기준 범주(reference ca..
Pandas에서 최빈값(mode) 은 .mode()으로 구합니다.import pandas as pds = pd.Series([1, 2, 2, 3, 3, 3, 4])s.mode()결과:0 3dtype: int64값만 하나 꺼내려면:s.mode()[0]DataFrame 컬럼에서 구하기df["col"].mode()df["col"].mode()[0]단, 최빈값이 여러 개일 수 있기 때문에 .mode()는 항상 Series 형태로 반환합니다.예:s = pd.Series([1, 1, 2, 2, 3])s.mode()결과:0 11 2dtype: int64빈도수 자체도 확인하려면:df["col"].value_counts()가장 빈도가 높은 값 하나만 필요하다면:df["col"].value_counts()..
1. 입력: 함수에 무엇이 들어오는가Series.apply()df["a"].apply(func)func에는 df["a"]의 값 하나씩 들어온다.def func(x): # x = 개별 값 return ...예:df["a"].apply(lambda x: x * 2)a가 다음과 같다면:102030함수는 개념적으로 다음처럼 호출된다.func(10)func(20)func(30)DataFrame.apply(axis=1)df.apply(func, axis=1)func에는 행 하나씩 들어온다.각 행의 타입은 Series이다.def func(row): # row = 한 행 전체 return ...예:df.apply( lambda row: row["a"] + row["b"], axis=1)..
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..