Data Science/Pandas & Numpy&Scikit-learn
-
머신러닝 Cross Validation 구현하기, 파이썬 코드 예시(K-fold, sklearn.model_selection.RepeatedKFold)Data Science/Pandas & Numpy&Scikit-learn 2022. 11. 22. 11:51
1. Cross Validation이란? 2. Reggression 예제에서의 K-fold 파이썬 코드 구현 2.1 라이브러리 호출 import seaborn as sns import numpy as np import pandas as pd from sklearn.preprocessing import MinMaxScaler, OneHotEncoder from sklearn.model_selection import train_test_split, RepeatedKFold from xgboost import XGBRegressor 2.2 데이터셋 준비 seaborn 라이브러리를 활용하여 tips 데이터를 불러온다. 해당 데이터셋은 고객 정보를 활용하여 얼마의 tip을 줄지 판단하는 회귀(Reggressor)..
-
Numpy random 함수 (rand, randint, randn, random, power)Data Science/Pandas & Numpy&Scikit-learn 2022. 10. 12. 16:39
1. numpy.random.rand n개의 demetion(차원) 정보를 입력받은 후 [0,1) 값의 무작위 샘플로 채운다. numpy.random.rand( d0, d1, ... , dn ) 2. numpy.random.randint 최솟값, 최댓값, 샘플사이즈, 데이터타입을 입력받고 해당하는 샘플을 생성한다. ※ high 파라미터가 입력되지 않으면, [0, low) 범위의 값을 생성한다. ※ low 및 high 파라미터는 배열을 사용하여 개별로 조건을 걸어줄 수 있다. numpy.random.randint(low, high=None, size=None, dtype=int) 3. numpy.random.randn 1번의 numpy.random.rand 함수와 유사하나, standard normal 분..
-
[Pandas] 데이터프레임 필터링, 특정 조건에 맞는 행/열 추출하기 (DataFrame.loc[])Data Science/Pandas & Numpy&Scikit-learn 2022. 10. 2. 18:24
이번 글에서는 데이터프레임에서 원하는 조건들을 적용해서 원하는 행 또는 열을 추출하는 방법을 작성한다. Pandas에서 데이터프레임 필터링 방법은 여러가지가 있지만 해당글에서는 loc만을 다룬다. 1. 데이터 준비 seaborn 라이브러리에서 제공하는 taxis 데이터셋을 사용한다. (참고 : sns.load_dataset, 파이썬 데이터샘플 불러오기) import seaborn as sns df = sns.load_dataset('taxis') print(df) print(df.info()) 2. Pandas DataFrame.loc[] 사용법 가장 기본이 되는 문법은 DataFrame.loc[ 행조건 , 열조건 ] 이다. 행조건에는 index 또는 bool 타입의 리스트가 사용된다. 열조건에는 컬럼 ..
-
파이썬 수치 데이터 구간화(Binning) 하기 - pd.cut, pd.qcutData Science/Pandas & Numpy&Scikit-learn 2022. 9. 27. 19:34
1. 구간화(Binning) 구간화는 수치데이터를 특정 구간별로 묶어 범주형 데이터로 변경하는 데이터 처리 기법이다. 우리가 흔히 쓰는 10대, 20대와같은 말이 대표적인 구간화이다. 2. Pd.cut 대표적 데이터 처리 라이브러리인 Pandas에서 cut이라는 함수를 통해 구간화를 지원한다. pd.cut은 인자로 수치형 데이터를 담은 리스트와 해당 데이터의 구간 개수를 입력받는다. (리스트 대신 데이터프레임의 특정 컬럼도 입력 가능하다.) 이때 구간은 리스트에서의 최소값과 최대값을 구간 개수만큼 분리하여 생성된다. import pandas as pd lst = [1,2,3,4,5,6,7,8,9,10,20,30,40,100,200,1000,5000] # pd.cut(수치데이터, 구간개수) re = pd...
-
[Pandas] Pandas를 통한 데이터 전처리Data Science/Pandas & Numpy&Scikit-learn 2022. 9. 13. 23:15
1. Pandas 인스톨 및 import pip install pandas import pandas as pd # as pd의 의미는 앞으로 pandas를 pd라는 약자로 부르겠다 2. 데이터프레임 생성 2.1 파일로부터 데이터프레임 생성 df = pd.read_csv("파일위치/파일이름.csv") 인자이름 기본값 변경가능값 의미 sep ',' 구분자로 사용할 문자열 컬럼간 구분자 csv의 구분자인 ','가 기본값이다 header 'infer' None 파일에 항목이름(column)이 없을경우 None으로 설정 names 없음 항목이름 리스트 읽어오는 데이터의 항목이름 설정 usecols None 항목이름 리스트 지정된 항목만 읽어옴 df = pd.read_csv('myfile.txt', header=N..
-
회귀모델에서 타겟(y)값의 정규화 방법 비교 실험Data Science/Pandas & Numpy&Scikit-learn 2022. 5. 27. 23:26
선형회귀에서는 타겟(y)값이 정규분포라는 가정을 한다. 문득, 실제로 모델에서 어떠한 성능적 영향을 미치는지 궁금증이 나타났다. 또한 트리기반의 모델에서는 타겟값의 정규분포가 영향을 미치는지 같이 실험을 진행한다. ※ 본 실험은 수학적 분석 기반이 아닌, 라이브러리를 활용한 단순 실험임을 밝힙니다. 여러 지적사항 및 의견이 있으신분은 편하게 댓글로 말씀해주시기 바랍니다. 0. 적용 정규화 방법 1. Raw data 2. MinMaxScaler 3. StandardScaler 4. RobustScaler 5. Log Transfer 6. Log Transfer + StandardScaler 7. Boxcox Transfer 8. Boxcox Transfer + StandardScaler 1. 사용 데이터 ..
-
[Python]다중 조건으로 데이터 프레임 특정 행 추출하기(데이터 프레임 필터링)Data Science/Pandas & Numpy&Scikit-learn 2022. 5. 10. 22:46
0. 서론 데이터 전처리, 분석 등에서 가장 많이 사용되는 기능 중 하나로는 데이터프레임에서 특정 행을 추출하는 필터링이 있다. 많은 수업 및 블로그들에서 loc 등을 통한 필터링을 알려주고 있지만 다중 조건에 대한 내용은 잘 나오지 않는다. 실제 분석 업무에서는 여러가지 조건을 중첩하여 사용하게 되는데, 이에대한 간단한 실험과 효율적 방법에 대해서 포스팅해본다. 1. 데이터 준비 실험 및 예시에서 사용될 데이터는 seaborn에서 제공하는 "taxis" 샘플을 사용한다. 14개의 컬럼으로 구성되어 있으며 여러 타입의 데이터가 존재한다. import seaborn as sns df = sns.load_dataset('taxis') df.info() seaborn에서 제공하는 데이터 셈플에 대한 자세한 내..
-
[정규화,sklearn] MinMaxScaler, StandardScaler, RobustScalerData Science/Pandas & Numpy&Scikit-learn 2021. 9. 14. 15:47
예측 모델을 위한 입력 피처를 구성하기 위해서는 수치형 값을 정규화 해야한다. 컬럼별로 수치형 값의 범위가 다를 경우 모델이 정확하게 학습되지 않을 수 있다. 본 포스팅에서는 각 컬럼들이 비슷한 범위를 가지게 하는 세가지 방법을 소개한다. 데이터 준비 import pandas as pd df=pd.DataFrame({ 'ID':[1,2,3,4,5], 'name':['아메리카노','바닐라라떼','아메리카노','민트초코','아메리카노'], 'tumbler':['N','Y','Y','N','N'], 'Age':[25,31,18,22,35], 'weight':[88.5,65.3,61.6,77.4,89.9] }) print(df) 데이터 타입 확인 print(df.dtypes) 수치형 컬럼 지정 해당 데이터에서 ..