반응형

머신러닝 11

머신러닝(15) Hierarchical Clustering으로 데이터를 그룹화하자

이번시간에는 비지도 학습 중 하나인 Hierarchical Clustering으로 데이터를 그룹화 하는 방법을 알아보겠다. 기존에 비지도 학습인 K-Means Clustering하고 다른 방법으로 진행되는 Hierarchical Clustering은 Dendrogam을 통해 데이터 간에 연결 지점을 찾고 머신러닝의 사용자가 그룹을 어떻게 나눌지 판단하는 방법이다. 정확히는 그룹을 사용자가 Dendrogam통해 보고 판단해야 적절한 그룹화를 이루는것이지 머신러닝 자체에서 판단 못하는것은 아니다. 코드를 통해 알아보자 데이터를 불러오고 적용하는것은 기존에 K-Means Clustering하고 동일하게 진행된다. 비지도 학습은 y데이터가 없고 정규화 또한 진행되지 않고 train test로 나눌 필요가 없다는..

머신러닝 2022.12.06

머신러닝(14) K-Means Clustering으로 데이터를 분류하여 그룹화하자

K-Means Clustering은 정확도를 예측할수 없고 머신러닝이 수행한 값을 그대로 적용하는 비지도 학습의 머신러닝 모델로써 값을 예측하는것이 아니고 기존의 데이터들을 머신러닝의 임의에 기준으로 그룹화 시키는 방법이다. 원리는 이렇다 이러한 데이터를 두 그룹으로 나눈다 할때 컴퓨터는 이런식으로 임의점을 잡고 그점 사이의 선의 거리를 구한다. 그 선의 중심점에 선의 수직으로 또하나의 선을 긋는다. 수직선을 기준으로 데이터를 나눈다. 다시 임의의 점들은 영역이 나뉜 데이터의 중심으로 이동하고 다시 두점사이의 거리를 구하고 거리의 중심으로 수직선을 긋는다. 수직선이 바뀌어서 데이터의 영역도 변한다. 다시 그 중심으로 이동하며 위에 순서를 반복한다. 더이상 중복되지 않은 선이 나타나지 않을때까지 선을 그으..

머신러닝 2022.12.05

머신러닝(13) Decision Tree로 데이터를 예측해보자

Decision Tree는 머신러닝의 예측기법중 하나로써 비교적 단순한 방법으로 데이터를 분류해서 찾아간다. 이렇게 데이터가 있다면 머신러닝은 이런식으로 랜덤하게 조건을 주고 데이터를 2개로 분류한다. 그럼 이렇게 데이터가 분류된다. 이제 머신러닝은 데이터를 랜덤하게 조건을 주고 2개로 분류된 데이터를 다시 2개씩 계속 분류해 나아간다. 그러면 최종적으로 데이터 범위가 좁혀져 데이터를 예측할수 있는것이다. 이제 코드를 통하여 알아보자 데이터를 불러오고 데이터를 가공하는것까진 기존의 머신러닝 기법과 똑같다. # DecisionTree함수 호출 from sklearn.tree import DecisionTreeClassifier #변수안에 함수를 넣는다. classifier = DecisionTreeClas..

머신러닝 2022.12.05

머신러닝(12) Support Vector Machine으로 데이터를 예측해보자

Support Vector Machine이란 머신러닝 예측 기법중 하나로 딥러닝이 나오긴전엔 높은 정확도를 가진 기법이 이었다. 무엇이 Support Vector Machine의 정확도를 끌어올렸는지 알아보자 Support Vector Machine의 작동원리는 이러하다 만약 인공지능보고 물건을 주고 사과인지 오렌지인지 분석하라 해보자 이렇게 좀 구별짓게 생긴게 있는가 반면 이렇게 오렌지 빛이 나는 사과가 있다 해보자 우리 사람은 "아 이거 좀 그래도 사과 같은데?" 이렇게 생각할 수 있지만 컴퓨터는 이미 사과와 오렌지의 기본 데이터로만 판단 할것이다. 그래서 사람보다 더욱더 구별하기 힘들것이다. 이렇게 완전 애매한 데이터는 SVM(Support Vector Machine)으로 구별한다. 빨간 점이 사과..

머신러닝 2022.12.02

머신러닝(11) K-NN으로 데이터를 예측해보자

K-NN은 머신러닝 기법중 하나이다. K-NN이 무엇인지 알아보도록 하자 K-NN은 이렇게 작동한다. 그래프 상에 값이 2개로 나오는 점들이 집합을 이루고 있다. 이 그래프에 새로운 데이터가 들어올때 어느 모임에 속하게 되는지 알아맞추는게 이번 인공지능의 목표이다. 그럼 어떻게 알아맞출까? 바로 새로운 데이터점과 좀더 가까운 모임에 속하게 된다고 예측하게 된다. 언뜻 보면 Logistic Regression을 떠올릴수 있겠지만 접근방식이 다른 기법이다. 이런식으로 조금이라도 더 가까운곳에 데이터가 속하게 된다. 그럼 어떻게 구현할까 알아보자 #데이터 프레임 함수 import pandas as pd import numpy as np #데이터를 불러온다. df=pd.read_csv('../data/Socia..

머신러닝 2022.12.02

머신러닝(7) Linear Regression으로 데이터 예측하기

지난 시간까지 데이터 전처리를 진행하는 방법을 알아보았다. Linear Regression으로 머신러닝을 해서 데이터를 예측해보자 우선 데이터를 불러온다. #데이터프레임관련 라이브러리 호출 # Importing the libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd #데이터를 불러온다. df=pd.read_csv('../data/Salary_Data.csv') df 데이터 전처리 작업을 진행한다. 지난시간에 종합적으로 다뤘므로 생략하고 진행한다. #Traing/Test 셋으로 분리 #분리하는 함수 from sklearn.model_selection import train_test_split #데이터를 분리해서..

머신러닝 2022.12.01

머신러닝(6) 데이터 전처리 종합

지난 시간에 이어서 데이터로 머신러닝을 만들어 보자 머신러닝도 지난시간에 언급했듯 여러가지 방법이 존재하는데 이번 시간엔 LinearRegression을 모델을 세워 예측해보겠다. 조금 수학적인 얘기로 LinearRegression 모델은 직선방정식으로 결과값을 예측하는 방법으로 y=ax+b 위에 식에서 a는 기울기 또는 계수 b는 y절편이 되는데 이 두개의 값으로 그래프에 선을 그릴수 있으며 그래프 상에 점으로 나타나는 분포와 거의 일치 할때까지 컴퓨터가 a,b값을 찾는것이 이 LinearRegression이라고 한다. 이제 한번 절차대로 해보자 우선 데이터를 불러오자 #데이터를 폴더에서 불러온다. df=pd.read_csv('../data/Data.csv') df 머신러닝에 쓸 함수들을 호출 해주자 ..

머신러닝 2022.12.01

머신러닝(4) train,test 모델로 데이터 나누기

데이터를 머신러닝으로 학습시키기 위한 마지막 단계로 데이터를 train,test 모델로 데이터 나눠야 한다. 나누는 방법을 알아보자 #데이터 나누는 함수 호출 from sklearn.model_selection import train_test_split #X,y 데이터를 train,test로 나누는데 test용 데이터는 20%로 한다. train_test_split(X,y,test_size=0.2,random_state= 3) >>>[array([[1. , 0. , 0. , 0.34782609, 0.28571429], [0. , 1. , 0. , 1. , 1. ], [0. , 0. , 1. , 0.47826087, 0.37142857], [0. , 0. , 1. , 0. , 0. ], [1. , 0. ,..

머신러닝 2022.12.01

머신러닝(3) Feature Scaling 피처 스케일링

피처 스케일은 데이터의 범위를 정규화 표준화 할때 사용하는 방법으로 지난 시간에 사용한적이 있지만 이번에 데이터 학습 전처리 과정으로 한번더 언급한다. 피처 스케일링을 하지 않으면 하나의 변수는 오차가 크고, 하나의 변수는 오차가 작으면, 나중에 오차를 수정할때 편중되게 된다. 우선 Standard 스케일러(표준화) 부터 알아보자 # Feature는 컬럼이라는 뜻 #하나의 변수는 오차가 크고, 하나의 변수는 오차가 작으면, 나중에 오차를 수정할때 편중되게 된다. # 따라서 값의 레인지를 맞춰줘야 정확히 트레이닝 된다. #스케일링 함수 import from sklearn.preprocessing import StandardScaler,MinMaxScaler #1. Standard 스케일러(표준화) # X ..

머신러닝 2022.12.01

머신러닝(2) Supervised 러닝 Data Preprocessing과 카테고리컬 데이터

앞에서 많이 언급되었지만 머신러닝을 하기 위해선 컴퓨터가 알수 있는 형태로 데이터를 주고 학습시켜야 한다. 컴퓨터가 알수 있는 형태로 데이터를 가공하는 기법이 Data Preprocessing(데이터 전처리) 과정이다. Supervised 러닝에 Data Preprocessing에는 2가지 방법이 있다. 우선 데이터를 준비한다. #데이터 파일에서 부르기 df=pd.read_csv('../data/Data.csv') df 이제 전처리 하기 전에 NaN데이터를 없앤다. 머신러닝으로 학습할 데이터는 NaN값을 바꿔서 채우기 보다 삭제하는것이 낫다. df=df.dropna() df 학습시킬 데이터와 결과 데이터를 나눈다. 지도 학습에선 전에 언급했듯이 기존의 데이터가 있어야 한다. #대소문자 구별 주의 #학습시..

머신러닝 2022.12.01