Computer Science/Machine Learning (8) 썸네일형 리스트형 Learning Curves Learning Curves는 우리가 만든 모델의 성능을 조사하기에 가장 좋은 방법입니다. 머신러닝에서 우리는 끊임없이 underfitting과 overfitting 사이의 어딘가 적정한 지점을 찾기 위해 노력합니다. 우리가 조금 결함이 있는 모델을 만들어 냈다면, 어떤 부분에서 잘못되었는지, 그래서 어디를 고쳐야 하는지를 아는 것은 아주 중요합니다. 예를 들면, 약간 underfitting된 상태라면 새로운 데이터를 얻어오는 것이 도움이 될것이고, overfitting된 상태라면 hyper-parameter를 수정하는 것이 도움이 될 것입니다. 아니면 새 데이터를 더 수집할 수도 있겠지요. 이번 포스팅의 목적은 예측기의 성능이 데이터의 수에 따라 어떻게 바뀌는지 알아보는 것입니다. 나아가 내 예측기가 .. Cross Validation, Grid Search with GridSearchCV 우리가 의사결정 나무를 사용하면, 정확도가 아주 높지는 않습니다. 대략 테스트 셋의 60-80% 정도의 accuracy를 보이죠. decision tree를 구성하는 파라미터는 아주 많은데, 각각의 파라미터에 어떤 값을 넣어주어야 할까요? 이때 각각의 파라미터를 바꿔가며 모델을 여러가 맨들어 최적의 파라미터를 찾아주는 함수가 있습니다. 바로 Grid Search 입니다. 게다가 train set과 test set을 한 번 만 나누지 않고 Cross Validation을 사용해서 각 매개변수의 성능을 평가할 수도 있습니다.. 데이터는 저번 포스팅과 같은 Breast cancer 데이터를 사용할 것입니다. Decision tree Classifier와 Accuracy score 라이브러리도 불러옵니다. tr.. Getting started with the Scikit-Learn library Scikit Learn 라이브러리는 이전 포스팅에서도 언급한 적이 있는데요. 이 라이브러리 하나만으로도 데이터 셋을 쪼개고, 모델에 훈련시키고 테스트 하기에 무리가 없습니다. 이번 포스팅에서는 간단한 데이터 split과 모델 훈련 데이터에 대해 알아보고자 합니다. 싸이킷런을 활용해보는 것에 중점을 두고자, 데이터는 파이썬에 업로드 되어있는 데이터를 활용했어요. 따라서 데이터 전처리는 건너뛰도록 하겠습니다. (7. Dataset loading utilities — scikit-learn 0.23.2 documentation (scikit-learn.org) 7. Dataset loading utilities — scikit-learn 0.23.2 documentation The 20 newsgroups d.. Dendrograms and Heat Plots 데이터 셋은 수업시간에 제공된 자료를 활용했습니다. 데이터의 의미보다는 코딩을 중점으로 봐주세요. # import libraries import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.cluster.hierarchy import dendrogram, linkage from pylab import figure, colorbar # data upload data = pd.read_excel("panda_example.xlsx") enzymes = ["DhlA", "LinB", "DbjA", "DmbA", "DrbA"] substrates = data["Name"] halides = data["Halide"] act.. Hierarchical Clustering에 대하여 Clustering은 Unsupervised Learning의 주요 수단입니다. 최종 목표는 데이터셋 중에 서로 가까운 데이터 포인터 들 끼리 묶어 하위 그룹을 만드는 것에 있습니다. 이번 포스팅에서는 K-means clustering에 대한 내용을 다룹니다. 중요한 포인트는 K를 고르는 것인데, 이는 알고리즘을 적용하기 전에 결정해야합니다. 만약 정확히 얼마나 많은 clusters가 사용될지 예측할 수 없다면, hierarchical clustering이 이때 사용됩니다. 즉, 모든 데이터 포인트들을 거리가 0인 점으로 잡고, 거리를 늘려가는데 이때 두 cluster가 만난다면 둘을 하나의 cluster로 잡고 dendrogram에서 평행한 선을 그어 두 점을 잇습니다. 이 과정을 계속하면 cluste.. Random Forest 배워보기 Ensemble Ensemble(앙상블)이란 여러 머신러닝 모델을 연결하여 더 강력한 모델을 만드는 기법입니다. 앙상블을 활용하면 거의 모든 경우 정확도가 상승합니다. 대신 여러 모델을 연결해야 하니 처리 속도가 느려집니다. Random Forest Random Forest가 여러개의 Decision Tree를 만들고 연결하여 결과를 취합한 후 평균내어 성능을 높인 모델입니다. 즉 앙상블의 원리를 사용한 방법입니다. Decison Tree는 여러 상황에서도 예측을 잘 하는 편이지만 일부 데이터에 대해서는 overfitting하는 경향이 있는데 random forest가 그러한 단점을 보완하는 방법이라고 할 수 있겠습니다. Overfitting Overfitting(과적합)이란 학습 데이터를 과하게 학습한.. Scikit-Learn 입문 앞서 라이브러리에 대해 언급한 적 있는데요. 많은 라이브러리들이 무료로 공개되어 있습니다. 이중에 어떤 라이브러리를 선택하는 것이 효율적일까요? 라이브러리를 선택할 때 고려할 점? 1. 개발하려는 제품, 원하는 결과를 얻기에 충분한 성능을 지녔는가 2. 인기가 많은 라이브러리인가 - 버그 수정이 빠르고 데이터가 많음 3. 사용해 봤을 때 편리하고 나의 효율을 높여주는가 유명 머신러닝 라이브러리 - scikit-learn : 전통적인 머신러닝 알고리즘 사용 목적으로 사용 - Tensorflow : 주로 딥러닝 목적으로 사용 - Pytorch, Keras, Caffe, Theano, DL4Jd ... 그 중 이번 포스팅에서 알아볼 사이킷런은 파이썬의 머신러닝 라이브러리입니다. (텐서플로는 딥러닝) 사이킷런에.. 데이터 사이언스 입문 더보기 *시작에 앞서 세 가지 프로그램의 설치가 필요합니다.* 1. Anaconda - 파이썬과 데이터 분석에 필요한 각종 도구를 포함하고 있습니다. 2. Chrome - 데이터 분석이 이루어지는 주피터 노트북을 실행합니다. 3. Python - 파이썬 코드를 실행할 수 있는 환경을 구성해 줍니다. 이번 포스트에서는 데이터 사이언스에 대해 정의하고, 앞으로의 포스팅 동안 공부할 범위에 대해 이해합니다. 이 과정에서 Feature Engineering에 대해 학습합니다. Backgrounds - 데이터 분석 과정에 대하여 데이터 분석의 과정 : 문제 탐색 ⇒ Feature Engineering ⇒ 모델 수립 ⇒ 모델 검증 ⇒ 모델 적용 문제를 찾는 것은 개발자의 몫입니다. 찾은 문제를 분석하고 해결을 위한.. 이전 1 다음