본문 바로가기

전체 글

(294)
Machine Learning - Scaling : Min-Max Scaling [Scaling] 변수의 크기가 다 상대적이므로 값이 너무 작거나, 큰 경우 해당 변수가 Target에 미치는 영향력이 제대로 표현되지 않을 수 있음 [Min-Max Scaling] 값의 범위를 0이상 1이하로 변경한다. 데이터 불러오기 및 결측치 처리 결측치 처리는 아래 포스팅 참조 https://steadiness-193.tistory.com/239?category=961040 Machine Learning - 결측값 처리(Imputation) : mean 데이터 불러오기 categorical, numeric 컬럼 구분 리스트 제작 간단히, 자료형이 object라면 categorical이고 int나 float이라면 numeric이라 보면 된다. 방법1. for loop 이용 방법2. 직접 명시 + 리..
Machine Learning - 결측값 처리(Imputation) : median, mode https://steadiness-193.tistory.com/239 머신러닝 - 결측값 처리 : mean 데이터 불러오기 categorical, numeric 컬럼 구분 리스트 제작 간단히, 자료형이 object라면 categorical이고 int나 float이라면 numeric이라 보면 된다. 방법1. for loop 이용 방법2. 직접 명시 + 리스트 이용.. steadiness-193.tistory.com 위 포스팅의 내용과 데이터프레임을 이용한다. 데이터프레임 및 결측치 확인 [Median] 데이터 개수에 대해 절반으로 나누는 위치의 값 개수가 짝수일 땐 중간에 위치한 두 값의 평균 중간값은 모든 관측값을 이용하지 않으므로 평균값보단 이상치(아웃라이어)의 영향을 덜 받는다. 복사본 만들기 중간값..
Machine Learning - 결측값 처리(Imputation) : mean 데이터 불러오기 categorical, numeric 컬럼 구분 리스트 제작 간단히, 자료형이 object라면 categorical이고 int나 float이라면 numeric이라 보면 된다. 방법1. for loop 이용 방법2. 직접 명시 + 리스트 이용 둘 중 편한 방법을 이용하면 된다. 결측값 확인 방법1. missingno 라이브러리의 matrix 이용 세로 흰색 선이 컬럼을 구분한다. 각 컬럼별 흰색 가로 선이 결측값이 있다는 것을 표시한다. revenue1 컬럼부터 결측값이 많아진다. 방법2. isna + sum 각 컬럼별로 결측값의 개수를 명확히 보고자할 때 이용하면 된다. [Imputation] 대표값을 사용한 결측치 처리 [Mean] 산술평균, 표본 평균으로도 불린다. 모든 관측치의 값을..
Kaggle - train, test를 한꺼번에 전처리하기 pd.concat을 이용해서 train과 test를 붙인 뒤 전처리를 완료하고 다시 인덱스를 이용해서 분리한다. 전처리할 때, test의 정보를 이용해서 train 넣으면 안된다. (평균으로 결측값 넣기 등) 데이터 출처 https://www.kaggle.com/c/bike-sharing-demand/data 위 Kaggle의 데이터를 이용한다. 데이터 불러오기 train train의 레코드 개수는 총 10,886개이며 인덱스는 0부터 10885까지로 되어있다. test test 데이터셋 또한 레코드는 총 6,493개이며 인덱스는 0부터 6492까지로 구성 되어있다. pd.concat axis=0으로 concat을 하면 행이 연결된다. 총 17,379개로 만들어지며 합치더라도 인덱스는 그대로 유지된다. ..
판다스 - 데이터프레임 역순으로 재구성 데이터 불러오기 인덱스가 0부터 243까지 있다. 역순이라면 243부터 0번까지 반대로 인덱스가 설정되어야 한다. range 243부터 -1까지를 포함하지 않는 범위를 만들었다. range에 범위 다음으로 -1을 넣는다면 역순으로 이해한다. 실제로 위 범위를 리스트로 바꿔서 출력하면 ... 역순으로 리스트가 잘 생성되었다. 역순 리스트 변수 생성 pd.DataFrame(기존 데이터프레임, index=r_idx) index인자에 역순으로 만든 인덱스 리스트를 넣어준다. 인덱스 초기화 잘 바뀌었는지 확인해보자 마지막행이던 243행이 0번행으로, 0번행이 243행으로 잘 바뀌었다.
판다스 - 라벨링(Labeling) 머신러닝을 진행하기 위해서는 문자열을 숫자로 바꿔줘야 한다. 소형 → 0 / 중형 → 1 / 대형 → 2 이런 식이다. 데이터 불러오기 race 컬럼의 고유값 라벨링 목표 White → 0 Black →1 Asian-Pac-Islander → 2 mer-Indian-Eskimo →3 Other → 4 두가지 방법으로 알아본다. 1. 딕셔너리 + map 일일이 사전으로 매핑을 만들어두고 map을 이용해서 값을 구해낸다. https://steadiness-193.tistory.com/216?category=947982 판다스 - map map 순차적 자료형에 대해 함수를 적용하는, 내장 함수 map(함수, 순차적 자료) map(func, iterables) map의 첫번째 인자인 함수는 파이썬의 내장함수도 ..
판다스 - 파일 읽어오기 : from os.path import join 운영체제에 따라 경로를 / 또는 \ 등을 이용할 수 있다. 여러 운영체제 간 이슈를 방지하기 위해서는 직접 경로설정을 하기보단 join을 이용하는 것이 낫다. 라이브러리 불러오기 경로 지정하기 상대경로를 이용한다. titanic 폴더의 data 폴더 안의 train.csv 파일을 지정해줬다. csv 파일 읽기 문제 없이 잘 읽어냈다. 상위 폴더 지정 이렇게 한 계층 위 폴더도 지정해줄 수 있다.
Numpy - apply_along_axis [apply_along_axis] 판다스의 apply처럼 이용하는 기능이지만 array일때 실행속도가 월등히 빠르다. import numpy as np np.apply_along_axis(함수, 축(axis), 배열(arr)) 예시1 - 작은 데이터프레임 10행 10열의 데이터프레임을 만들었다. 각 열별로 최댓값에서 최솟값을 빼는 연산을 lambda로 실행한다. 1-1. 판다스 - apply 실행 시간은 0.009초 상당히 빨리 진행됐다. * 실행 할때마다 시간은 달리 나온다. 1-2. Numpy - apply_along_axis apply_along_axis는 0.0초가 소요됐다. 결과는 result1과는 달리 배열 형태로 나왔다. (이를 데이터프레임의 컬럼으로 추가해주면 된다.) 이번엔 1만 개의 행..