insighted-h의 등록된 링크

 insighted-h로 등록된 티스토리 포스트 수는 13건입니다.

[EDA Practice] Subplot 그리기 [내부링크]

이전 포스팅에서 matplotlib이나 seaborn을 통해서 그래프를 생성하면 자동으로 AxesSubplot 객체가 생성되었다. AxesSubplot은 Figure 객체에 포함된 객체이지만, 일반적으로는 하나밖에 생성이 안된다. 그러나, 데이터 시각화를 진행하다 보면, 아래처럼 여러 개의 그래프를 한 눈에 비교하고 싶을 때가 있다. matplotlib에서는 서브플롯을 그리기 위해 몇 가지의 메서드를 제공한다. 1. add_subplot() 첫 번째는 바로 Figure 객체의 add_subplot() 메서드이다. add_subplot()은 파라미터로 row, col, index를 받는다. index는 서브플롯이 생성되는 위치로, 왼쪽 위에서부터 1이다. 아래 코드는 nrows=3, ncols=2의 빈 서..

[EDA Practice] Figure, Axes 객체 [내부링크]

Matplotlib은 데이터 시각화에 필수적인 패키지이다. 이러한 그래프를 그릴 수 있는 이유는 Matplotlib만의 특별한 클래스들이 존재하기 때문이다. 바로 Figure와 Axes 클래스이다. Matplotlib의 그래프를 담을 수 있는 Figure 클래스와 Axes 클래스를 알아보자. 1. Figure 클래스 일반적인 방식으로 plt.figure()를 수행하고 객체 타입을 확인한 결과이다. fig = plt.figure() type(fig) => matplotlib.figure.Figure 코드에서 볼 수 있듯이 matplotlib.figure.Figure 객체가 생성되는 것을 볼 수 있다. Figure 객체는 그래프 요소를 담을 수 있는 최상위 컨테이너이다. 그래프를 담을 수 있는 직사각형의 객..

[Machine Learning] 분류 측정 지표 [내부링크]

분류는 머신러닝의 대표적인 기법 중 하나이다. 정말 다양한 분류 알고리즘이 있고, 아직 데이터분석을 시작한 지 얼마 안 된 초보자 입장이지만, 현재까지 웬만한 문제들은 분류 알고리즘 기반으로 풀렸다. 그러나 머신러닝 모델링을 했어도 모델의 성능을 측정할 수 없다면 아무 쓸모가 없을 것이다. 실제 테스트 데이터에 대해서 잘 작동하는지 평가를 해봐야 할 것이다. 일반적으로 평가를 한다면 정확도를 가지고 평가를 할 테지만, 분류에서는 다른 측정 방법들을 사용한다. 분류에서 정확도를 맹신하지 않는 이유는 나중에 정리하여 포스팅하겠다. 분류에서 이 평가를 하는 방법이 존재한다. 1. 오차 행렬 (confusion matrix) 첫 번째는 바로 오차 행렬이다. 오차 행렬은 실제 값과 예측 값을 비교하여 잘못 비교된..

[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..

[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..

[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..

[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..

[Machine Learning] 손실 함수 (loss function) [내부링크]

머신러닝에서 모델 학습을 시키면 평가지표로써 손실 함수가 등장한다. 손실 함수의 값은 모델이 실제값에 대해서 얼마나 잘 예측했냐를 판가름하는 좋은 지표가 된다. 손실 함수의 값이 작아지면 작아질수록, 모델은 더욱더 예측을 잘하게 된다. 따라서 머신러닝에서 성능을 향상시키기 위해 손실함수를 최소화시키는 방안을 찾게 된다. 손실 함수는 측정 방법에 따라 여러 가지가 존재하게 된다. 사용하는 함수는 각 함수의 특성에 따라 상황에 적절한 함수를 사용한다. 1. MSE (Mean Squared Error) 이름에서 알 수 있듯이 평균제곱오차이다. MSE는 가장 기본적이고 간단한 손실 함수이다. 손실함수의 값은 전체 데이터셋에 대해서 실제값과 예측값의 차이를 제곱한 후 평균을 낸 값이다. 통계학에서의 분산과 비슷한..

[Machine Learning] 분류 알고리즘 [내부링크]

머신러닝 알고리즘 중에서 분류는 직관적이면서 가장 기초적인 알고리즘이다. 분류로 해결할 수 있는 대표적인 문제들을 예로 들자면, 타이타닉 데이터셋으로부터 생존자 예측하기 (생존 or 사망) 고객들의 금융 데이터셋으로부터 대출 가능 여부 예측하기 (가능 or 불가능) 1~10까지의 숫자 이미지가 들어있는 MNIST 데이터셋으로부터 해당 숫자가 몇인지 분류하기 이처럼 데이터셋으로부터 특징들을 파악하여 모델을 학습시키고, 분류 결과를 도출해낸다. 분류 알고리즘은 어떤 것들이 있을까? 아래는 머신러닝에서 주로 사용하는 알고리즘들이다. 1. Logistic Regression (로지스틱 회귀모형) 첫 번째로 자주 사용하는 분류 모델은 Logistic Regression이다. 이름에 회귀라는 말이 들어가있어서 처음..

[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..

[EDA Practice] EDA란? [내부링크]

EDA(Explanatory Data Analysis, 탐색적 데이터 분석) : 통계 그래픽 및 기타 데이터 시각화 방법을 사용하여 주요 특성을 요약하기 위해 데이터 세트를 분석하는 접근 방식 처음 원본 데이터를 보면 무엇부터 시작해야 할지 막막하다. 원본 데이터는 생각보다 난잡하기 때문에, 데이터를 보자마자 바로 분석 기법을 정하고 데이터 분석에 들어가는 사람은 없을 것이다. 데이터 분석에 들어가기 앞서서, 어떤 특성(column)이 중요한 특성인지, 특성들끼리의 관계는 어떤지, 데이터의 분포는 어떤지 등등 데이터를 이해하며 인사이트를 얻는 과정이 필요하다. 데이터에 대한 이해를 잘할수록, 즉 EDA를 잘할수록 데이터 분석 프로젝트를 더 수월하게, 그리고 더 좋은 분석 결과물을 얻어낼 수 있을 거라는 ..

[Machine Learning] 지도 학습 vs 비지도 학습 vs 강화 학습 [내부링크]

머신러닝을 공부하다 보면 쉽게 지도 학습, 비지도 학습, 강화 학습과 같은 말들을 찾아볼 수 있다. 이름만 얼핏 들으면 지도 학습과 비지도 학습은 서로 반대되는 개념이고, 강화 학습은 점점 학습으로 인해 알고리즘이 강화되어가는 느낌이 든다. 하지만 나는 '지도'라는 단어 자체의 뜻이 헷갈렸다. 지도 학습에서의 지도는 다음과 같다. 지도(Supervised) : 어떤 목적이나 방향으로 가르쳐 이끌어 가는 것. 처음에 나는 어떤 지도(Map)가 있어서 그 방향으로 학습을 진행해나간다는 뜻인줄 알았지만, 누군가가 이끌어준다는 뜻의 지도였다. 지도 학습, 비지도 학습, 강화 학습 간의 차이는 다음과 같다. 1. 지도 학습(Supervised Learning) 지도 학습은 정답이 있는 데이터(labelled da..

[Machine Learning] scikit-learn에 대하여 [내부링크]

scikit-learn은 파이썬의 대표적인 머신러닝 패키지이다. 오픈소스 라이브러리이기 때문에 당연히 사용자도 많고 그만큼 관련 글도 쉽게 찾아볼 수 있다. 현재 시점으로, 가장 최근 버전인 1.2.0은 release date가 2022/12/08일 정도로 버전 업데이트도 자주 되는 편이다. 사이킷런 공식 홈페이지: https://scikit-learn.org/ 사이킷런 웹페이지에서 API를 누르면 다양한 라이브러리들을 볼 수 있다. 카테고리 별로 회귀, 분류, SVM, 클러스터링 등 머신러닝 기법부터 측정 지표에 관한 함수들까지 그 양이 매우 방대하다. 또한 공식문서의 API에 파라미터들부터 시작해서 활용할 수 있는 method들, 사용 예시까지 자세히 적혀있기 때문에 상당히 편리하고 친절하다. 사이킷..