본문 바로가기

전체 글20

[Machine Learning] 평가 지표 - 분류(Classification) 분류는 머신러닝의 대표적인 기법 중 하나이다. 정말 다양한 분류 알고리즘이 있고, 아직 데이터분석을 시작한 지 얼마 안 된 초보자 입장이지만, 현재까지 웬만한 문제들은 분류 알고리즘 기반으로 풀렸다. 그러나 머신러닝 모델링을 했어도 모델의 성능을 측정할 수 없다면 아무 쓸모가 없을 것이다. 실제 테스트 데이터에 대해서 잘 작동하는지 평가를 해봐야 할 것이다. 일반적으로 평가를 한다면 정확도를 가지고 평가를 할 테지만, 분류에서는 다른 측정 방법들을 사용한다. 분류에서 정확도를 맹신하지 않는 이유는 나중에 정리하여 포스팅하겠다. 분류에서 이 평가를 하는 방법이 존재한다. 1. 오차 행렬 (confusion matrix) 첫 번째는 바로 오차 행렬이다. 오차 행렬은 실제 값과 예측 값을 비교하여 잘못 비교된.. 2023. 2. 7.
[Pandas] 판다스 데이터프레임 합치기 (merge, concatenate) 판다스에서는 시리즈나 데이터프레임을 다루기 편하게 하기 위해 여러 함수들을 제공하고 있다. 그 중, 여러 개의 데이터프레임이나 시리즈를 합치는 기능은 빈번히 사용되는 기능들 중 하나이다. 1. concat() 첫 번째는 concat() 메서드이다. concat() 메서드는 이름 그대로 데이터프레임 또는 시리즈를 연결하는 기능이다. 아래 예시처럼 서로 다른 두 데이터프레임을 합칠 수 있다. df1 = pd.DataFrame( { "A": ["A0", "A1", "A2", "A3"], "B": ["B0", "B1", "B2", "B3"], "C": ["C0", "C1", "C2", "C3"], "D": ["D0", "D1", "D2", "D3"], }, index=[0,1,2,3] } df2 = pd.Dat.. 2023. 2. 7.
[Pandas] 판다스 인덱싱 (loc, iloc) 판다스의 Series와 Dataframe 데이터 구조는 각각 1차원과 2차원이다. 각각은 Python의 [] 기호를 통해서 인덱싱도 가능하지만 .loc과 .iloc을 사용하여 인덱싱 하는 것이 훨씬 편리하다. Python에서 리스트 객체에 사용하는 일반적인 [] 인덱싱은 Series와 Dataframe에서는 오류가 날 가능성이 있기 때문에 loc과 iloc을 사용하는 것이 좋다. 자세한 사례는 stackoverflow에 올라온 질문을 통해 확인해 볼 수 있다. https://stackoverflow.com/questions/38886080/python-pandas-series-why-use-loc Python: Pandas Series - Why use loc? Why do we use 'loc' for.. 2023. 2. 4.
[Pandas] 판다스 기본 함수들 판다스에는 Series와 Dataframe에 모두 적용되는 기본 함수들이 있다. 1. head() & tail() head와 tail 메서드는 샘플을 뽑아 보여주는 쉬운 메서드이다. head()는 앞에서부터 n개만큼의 샘플을, tail()은 뒤에서부터 n개만큼의 샘플을 보여준다. 매개변수를 전달하지 않는다면 default 값은 5개이다. 다음은 head()와 tail()의 예시이다. d = {"one": range(20), "two": np.random.randn(20)} df = pd.DataFrame(d) df.head() => onetwo 00-0.262533 111.097868 220.627424 33-0.150713 44-0.656796 df.tail(1) => onetwo 1919-1.3971.. 2023. 2. 3.
[Pandas] 판다스(Pandas)와 데이터 구조 데이터 분석을 할 때 항상 빠지지 않는 삼대장 패키지가 있다. 바로 NumPy, Pandas, Matplotlib이다. 그 중 판다스는 데이터 조작 및 분석 작업을 매우 편리하게 만들어주는 패키지이다. 판다스의 공식문서는 아래 링크를 통해 들어갈 수 있다. User Guide와 API 모두 상당히 친절하고 자세하다. 판다스 공식문서: https://pandas.pydata.org/ pandas - Python Data Analysis Library pandas pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programmi.. 2023. 1. 31.
[Machine Learning] 손실 함수 (loss function) 머신러닝에서 모델 학습을 시키면 평가지표로써 손실 함수가 등장한다. 손실 함수의 값은 모델이 실제값에 대해서 얼마나 잘 예측했냐를 판가름하는 좋은 지표가 된다. 손실 함수의 값이 작아지면 작아질수록, 모델은 더욱더 예측을 잘하게 된다. 따라서 머신러닝에서 성능을 향상시키기 위해 손실함수를 최소화시키는 방안을 찾게 된다. 손실 함수는 측정 방법에 따라 여러 가지가 존재하게 된다. 사용하는 함수는 각 함수의 특성에 따라 상황에 적절한 함수를 사용한다. 1. MSE (Mean Squared Error) 이름에서 알 수 있듯이 평균제곱오차이다. MSE는 가장 기본적이고 간단한 손실 함수이다. 손실함수의 값은 전체 데이터셋에 대해서 실제값과 예측값의 차이를 제곱한 후 평균을 낸 값이다. 통계학에서의 분산과 비슷한.. 2023. 1. 31.
[Machine Learning] 분류 알고리즘 머신러닝 알고리즘 중에서 분류는 직관적이면서 가장 기초적인 알고리즘이다. 분류로 해결할 수 있는 대표적인 문제들을 예로 들자면, 타이타닉 데이터셋으로부터 생존자 예측하기 (생존 or 사망) 고객들의 금융 데이터셋으로부터 대출 가능 여부 예측하기 (가능 or 불가능) 1~10까지의 숫자 이미지가 들어있는 MNIST 데이터셋으로부터 해당 숫자가 몇인지 분류하기 이처럼 데이터셋으로부터 특징들을 파악하여 모델을 학습시키고, 분류 결과를 도출해낸다. 분류 알고리즘은 어떤 것들이 있을까? 아래는 머신러닝에서 주로 사용하는 알고리즘들이다. 1. Logistic Regression (로지스틱 회귀모형) 첫 번째로 자주 사용하는 분류 모델은 Logistic Regression이다. 이름에 회귀라는 말이 들어가있어서 처음.. 2023. 1. 29.
[EDA Practice] 2023/W4 EDA Practice Data Source: 'https://query.data.world/s/h4cgvavgdnxywxbbjnnlztdahzzidg' EDA 연습을 위한 첫 번째 데이터셋은 Makeover Monday 웹사이트의 23년 넷째주 데이터셋인 'National Highway Traffic Safety Administration Automobile Recalls'이다. 미국의 자동차 리콜에 대한 데이터셋이고, 1966년부터의 리콜 정보를 담고 있다. 데이터셋에 대한 구체적인 정보는 아래의 링크를 통해 확인해볼 수 있다. National Highway Traffic Safety Administration : https://datahub.transportation.gov/Automobiles/Recalls-Data/6.. 2023. 1. 27.
[EDA Practice] EDA란? EDA(Explanatory Data Analysis, 탐색적 데이터 분석) : 통계 그래픽 및 기타 데이터 시각화 방법을 사용하여 주요 특성을 요약하기 위해 데이터 세트를 분석하는 접근 방식 처음 원본 데이터를 보면 무엇부터 시작해야 할지 막막하다. 원본 데이터는 생각보다 난잡하기 때문에, 데이터를 보자마자 바로 분석 기법을 정하고 데이터 분석에 들어가는 사람은 없을 것이다. 데이터 분석에 들어가기 앞서서, 어떤 특성(column)이 중요한 특성인지, 특성들끼리의 관계는 어떤지, 데이터의 분포는 어떤지 등등 데이터를 이해하며 인사이트를 얻는 과정이 필요하다. 데이터에 대한 이해를 잘할수록, 즉 EDA를 잘할수록 데이터 분석 프로젝트를 더 수월하게, 그리고 더 좋은 분석 결과물을 얻어낼 수 있을 거라는 .. 2023. 1. 20.