목록머신러닝 (15)
컴공생의 다이어리

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)로 이루어 짐 텐서 형태의 데이터들이 딥러닝 모델을 구성하는..

다음과 같이 하루 노동 시간과 하루 매출에 대한 표가 주어졌을 때, 하루 노동 시간이 8시간일 때의 하루 매출을 예측해보자! 하루 노동 시간 하루 매출 1 25,000 2 55,000 3 75,000 4 110,000 5 128,000 6 155,000 7 180,000 구현 코드 import tensorflow.compat.v1 as tf tf.disable_v2_behavior() xData = [1,2,3,4,5,6,7] yData = [25000,55000,75000,110000,128000,155000,180000] W = tf.Variable(tf.random_uniform([1],-100,100)) # W : 가설의 기울기,weight의 줄임말로 가중치라는 뜻을 가지기도 함 b = tf.Va..

비용(Cost)이란? 가설이 얼마나 정확한지 판단하는 기준을 말한다. 아래 왼쪽과 같이 데이터가 주어졌을 때, 가설 식으로서 1차함수를 그리면 아래 오른쪽과 같다. 이때, 비용은 아래와 같이 직선과의 거리를 이용해 구할 수 있다. 비용 함수(Cost Function) 비용 함수는 예측 값에서 실제 값의 차의 제곱의 평균과 같다. => (예측 값 - 실제 값)2의 평균 - 현재의 W, b 값과 데이터를 이용하면 비용 함수를 구할 수 있다. - 비용함수로 구한 비용이 적을 수록 좋다. 경사 하강(Gradient Descent) 경사 하강을 이용해 합리적인 식을 도출한다. H(x)=Wx로 식을 간단히 한다. 따라서 비용 함수는 (Wx-y)2를 따른다. www.youtube.com/watch?v=YK9PNTJ_..

k-mean 알고리즘은 비지도 학습(Unsupervised Learning) 알고리즘 중 하나이다. cf) clustering(=군집,클러스터링)이란? 머신러닝에서 비지도 학습의 기법 중 하나이며, 데이터 셋에서 서로 유사한 관찰치들을 그룹으로 묶어 분류하여 몇 가지의 군집(cluster)를 찾아내는 것 k-mean 클러스터링이란? k-mean 알고리즘은 굉장히 단순한 클러스터링 기법 중에 하나이다. 어떤 데이터 셋(set)이 있고 k개의 클러스터로 분류하겠다고 가정하면, 그 데이터 셋에는 k개의 중심(centroid)이 존재한다. 각 데이터들은 유클리디안 거리를 기반으로 가까운 중심에 할당되고, 같은 중심에 모인 데이터 그룹이 하나의 클러스터가 된다. cf) mean이란? 각 클러스터의 중심과 데이터들..

머신러닝의 지도학습(Supervised Learing)에는 2가지 카테고리가 있다. 바로 분류(classification)와 회귀(regression)이다. 분류(classification) 회귀(regression) 분류에는 classifier(분류기)가 있다. 분류기에서 정답을 가진 data로 train을 해주고 난뒤, train이 끝나면, test시에는 정답이 없는 data를, 학습된 class를 기초로 판단하게 하는 것이다. classifier ex) knn, decision tree, SVM 등 사람의 무게를 줬을 때, 그 사람의 키를 예측하는 등의 문제 선형 회귀(Linear Regression)란? 변수 사이의 선형적인(=직선적인) 관계를 모델링 한 것이다. 즉, 선형 회귀란 주어진 데이터를..
머신러닝은 학습하려는 문제의 유형에 따라, 다음과 같이 크게 3가지로 분류된다. 지도 학습(Supervised Learning) 비지도 학습(Unsupervised Learning) 강화 학습(Reinforcement Learning) 지도 학습(Supervised Learning) 지도 학습이란 말 그대로 정답이 있는 데이터를 활용해 데이터를 학습시키는 것이다. 입력 값(X data)이 주어지면 입력값에 대한 Label(Y data)를 주어 학습시키는 것을 말한다. 예를 들어 인물 사진과 동물 사진을 주어 이건 사람이고 이건 동물이야라고 알려주는 학습 방식이다. 따라서 기계가 정답을 잘 맞췄는지 아닌지를 쉽게 알 수 있다. 지도학습에는 대표적으로 분류(classification)와 회귀(regressi..

베이즈 정리(Bayes Theorem) 베이즈 정리는 새로운 정보를 토대로 어떤 사건이 발생했다는 주장에 대한 신뢰도를 갱신해 나가는 방법이다. 베이즈 정리 증명 서로 영향을 끼칠 때의 두 사건에 대한 조건부 확률을 사용해 베이즈 정리를 증명할 수 있다. 다음과 같이 식을 정리하다보면 결과적으로 A가 일어났을 때의 B의 확률(P(B|A))를 구할 수 있다. 문제 적용 이제 free라는 메일이 와있을 때(A) 그것이 스팸메일인지(B) 아닌지를 구분해야 하는 문제에 나이브 베이즈 문제를 적용시켜보자. 10개의 메일 중에, 3개는 스팸메일이다. 그리고 그와 상관없이 free라는 단어를 포함하는 메일이 4개가 있다. 기본적으로 필요한 요소는 3가지 이다. P(spam) : 스팸메일의 확률 = 3/10 P(fre..