목록데이터 분석 & 머신러닝 (31)
컴공생의 다이어리
산점도(scatter) 산점도는 scatter() 함수를 사용해 표현할 수 있다. 산점도는 x축과 y축에 해당하는 데이터의 상관관계를 표현할 때 사용하며 점이 흩어져 있는 그래프라는 의미이다. 두 개의 축을 기준으로 데이터가 얼마나 퍼져있는지(분포) 알 수 있어 '산포도'라고도 불린다. import matplotlib.pyplot as plt plt.rc("font", family='NanumGothic') plt.title('산점도') plt.scatter([1,2,3,4],[5,1,4,2]) plt.show() 버블 차트(bubble) 버블 차트는 scatter() 함수를 사용해 표현할 수 있다. scatter() 함수로 버블 차트를 나타내려면 기존 코드에서 size를 의미하는 s 속성을 추가하고 원..
막대그래프(bar, barh) bar() 함수는 수직 막대그래프를 표현하는 명령어이다. 막대그래프에서 막대의 길이는 각 데이터의 크기를 의미한다. 아래는 막대그래프의 예시 코드와 그 결과이다. import matplotlib.pyplot as plt plt.rc("font", family='NanumGothic') plt.title("막대그래프(bar)") x_data=[1,3,5,7,9] y_data=[5,7,6,1,4] plt.bar(x_data,y_data) #bar(막대를 표시할 위치, 막대의 높이) plt.show() barh() 함수를 통해 막대그래프를 수직이 아닌 수평 방향으로 그릴 수 있다. import matplotlib.pyplot as plt plt.rc("font", family='..
matplotlib 라이브러리란? 파이썬에서 데이터 시각화를 할 때, matplotlib이라는 라이브러리를 가장 많이 사용한다. matplotlib 라이브러리는 파이썬에서 2D형태의 그래프, 이미지 등을 그릴 때 사용하는 것으로, 실제 과학 컴퓨팅 연구 분야나 인공지능 연구 분야에서도 많이 활용된다. matplotlib에 관해서만 책 한 권 이상의 분량이 나올 정도로 내용이 방대하다. 꺽은 선(plot) 아래 코드는 [10,20,30,40,50]이라는 값만을 가지고 plot을 그린 것이다. 이 값들이 x축을 가리킬지, y축을 가리킬지 모르겠다면 출력 결과를 통해 알 수 있다. [10,20,30,40,50]은 바로 y축 값들이다. x축의 값들을 생략할 경우 x축은 range(y축 데이터 개수)로 표현된다...
그래프 옵션 - 그래프에 제목 넣기 - title() 함수를 통해 그래프에 제목을 넣을 수 있다. 이때, 한글 폰트를 사용하기 위해서는 rc("font", family=폰트이름)으로 설정을 해주어야 한다. import matplotlib.pyplot as plt plt.rc("font", family='NanumGothic') #한글 폰트 설정 plt.title("plotting 그래프") #그래프에 제목 넣기 plt.plot([1,2,3,4,5],[10,30,15,20,40]) plt.show() - 그래프에 범례 넣기 - plot() 함수에 label이라는 속성의 레이블 값으로 원하는 문자열을 넣어주고, 그래프를 그리기 전에 legend() 함수를 실행시키면 레이블 값이 범례로 나타난다. import..
행 열 전환(transpose) 행 열 전환은 데이터프레임이름.transpose()를 하면 전환 할 수 있다. 전환이 되고 난 상태에서 바로 데이터 프레임을 사용하려고 하면 열 이름이 의도치 않게 한 행의 데이터로 되어 있는 것을 볼 수 있을 것이다. 이 때, 데이터프레임이름(columns=데이터프레임이름.iloc[0],inplace=True)와 데이터프레임이름=데이터프레임이름.drop(데이터프레임이름.index[0])를 해주면 행열 전환을 잘 마무리 할 수 있다. 아래 코드에서 데이터 프레임 이름은 df이다. df = df.transpose()#행 열 전환 df.rename(columns=df.iloc[0], inplace=True)# 행열이 전환된 데이터프레임의 열 이름 제대로 수정 df = df.d..
간혹 데이터프레임의 열이 많을 때, 아래와 같이 ···으로 일부 열이 생략이되서 나온다. 상가업소번호 상호명 지점명 상권업종대분류코드 상권업종대분류명 상권업종중분류코드 상권업종중분류명 상권업종소분류코드 상권업종소분류명 표준산업분류코드 ... 건물관리번호 건물명 도로명주소 구우편번호 신우편번호 동정보 층정보 호정보 경도 위도 0 17163092 도전최강달인왕만두 NaN Q 음식 Q01 한식 Q01A01 한식/백반/한정식 I56111 ... 1174010200102170000018014 고덕그라시움 서울특별시 강동구 고덕로 333 134082 5224.0 NaN NaN NaN 127.159471 37.556197 1 17120456 이때 NaN Q 음식 Q01 한식 Q01A01 한식/백반/한정식 I56111..
Kaggle(캐글) Titanic(타이타닉) 생존자 예측에서 사용했던 머신러닝 모델을 간단하게 정리했다. 모델 종류 Logistic Regression, SVM(Support Vector Machines), K-NN(K Nearest Neighborhood), Gaussian Naive Bayes, Perceptron, Linear SVC, Stochastic Gradient Descent, Decision Tree, Random Forest 파워포인트 일단 짧게 요약해서 정신이 없고 이해하기 어려워서 나중에 하나씩 자세하게 다시 정리할 계획이다!
Kaggle의 대표적인 문제 중 하나인 타이타닉 생존자 예측을 Manav Sehgal의 solution을 통해 정리해보았다. github에 Kaggle 타이타닉 생존자 예측 관련 주피터 노트북과 데이터셋을 올려두었다. ▶github 링크◀ Titanic 생존자 예측 타이타닉 호 침몰 사건 당시의 사망자와 생존자를 구분하는 요인 분석을 통해, 승객들의 생존 여부를 예측 필요한 라이브러리 설치 In [1]: # 데이터 불러오기 import pandas as pd import numpy as np import random as rnd In [2]: # 시각화 import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline In [3]: # 머신..
텐서플로우에서는 변수와 상수 기능을 제공한다. 상수 상수는 변하지 않는 숫자를 의미하며 텐서플로우에서는 constant() 함수를 이용해서 정의할 수 있다. In [1]: import tensorflow.compat.v1 as tf tf.disable_v2_behavior() a = tf.constant(1) #1이라는 원소를 가지고 있는 하나의 배열을 만들어서 a에 넣어줬다. b = tf.constant(2) #2라는 원소를 가지고 있는 하나의 배열을 만들어서 b에 넣어줬다. c = tf.add(a,b) #a와 b를 더한 그 tensor의 값을 담아줌 sess = tf.Session() #하나의 session 객체 생성 sess.run(c) #session 객체 실행 Out[1]: 3 위의 코드를 실행..
텐서플로우(Tensoflow)란? 데이터 그래프를 수치적으로 연산하기 위해 구글에서 만든 오픈 소스 라이브러리 텐서(Tensor) 다차원의 배열을 담고 있는 노드(Node)와 이를 다양한 연산으로 연결하고 있는 엣지(Edge)로 구성되어 있으며, 이러한 텐서들이 서로 연산을 통해 값을 주고 받는 흐름(Flow)으로 작동 텐서플로우 자체는 기본적으로 C++로 구현 되어 있으며, 아래의 그림과 같이 Python, Java, Go 등 다양한 언어를 지원 하지만, 파이썬을 최우선으로 지원하며 대부분의 편한 기능들이 파이썬 라이브러리로만 구현되어 있어 Python에서 개발하는 것이 편함 텐서플로우에서 계산은 데이터 흐름 그래프(DataFlow Graph)로 이루어 짐 텐서 형태의 데이터들이 딥러닝 모델을 구성하는..