전체 글(42)
-
블록체인 - 1. 블록 (Block)
블록 블록체인(Blockchain)이라는 이름에서 알 수 있듯이, 블록체인은 다수의 블록들의 체인 형태의 연결로 이루어져 있다. 이 하나하나의 블록들은 데이터를 담고 있다. 그렇다면 블록 체인은 위 그림과 같이 나타낼 수 있을 것이다. 각각의 블록들이 담고 있는 데이터는 무엇이 있는가. 자신의 블록 번호와(최초로 만들어진 블록의 번호는 1이다), 자신이 만들어진 시간을 나타내는 타임스탬프(Time Stamp), 자신 이전 블록의 해시(Hash) 값, 자신의 해시값, 논스(Nonce), 데이터가 담겨 있는 바디(body)로 이루어져 있다. 블록이 담고 있는 데이터는 크게 헤더와 바디로 나눌 수 있다. 헤더에는 앞서 말한 해시값들과 타임스탬프, 논스가 담겨있고, 바디에 실제로 유의미한 데이터들이 들어간다. ..
2024.01.23 -
머신러닝 - 12. 단순 선형 회귀 (Simple Linear Regression)
단순 선형 회귀 단순 선형 회귀(Simple Linear Regression)는 하나의 특성과 연속적인 타깃 사이의 관계를 모델링한다. 이를 수식으로 나타내면 위와 같다. 흔히 보던 일차방정식의 수식과 다를 것이 없다. 즉 특성과 타깃의 관계를 가장 잘 나타내는 직선 그리와 같다. 위 수식을 굳이 풀어쓰자면, b는 y 절편을 뜻하고 w1은 가중치를 뜻한다. 쉽게 생각하여, 단순 선형 회귀의 목적은 타깃을 가장 잘 예측하는 적절한 w와 b 값을 찾는 것이다. 단순 선형 회귀 모델의 학습 위 그림 1.A에서 세가지 직선 A, B, C 중에서 어느 직선이 타깃을 가장 잘 예측한다고 생각하는가. 샘플들의 중간을 가로지르는 B가 특성과 타깃 사이의 관계를 가장 잘 나타낸다고 여길 것이다. 어림짐작이 아닌, 수식으..
2024.01.22 -
머신러닝 실습 - 4. 랜덤 포레스트로 붓꽃 데이터 분류
이 글에서는 Scikit-learn의 sklearn 라이브러리를 사용하여 랜덤 포레스트 모델을 훈련하고, 파라미터들을 조절해가며 성능을 비교한다. 결정 트리에 관한 이론적 내용을 알고 싶다면 이곳으로. 코드 (나머지 시행에서는 올리지 않음) from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier import matplotlib.pyplot as plt from sklearn.metrics import accuracy_score iris = datasets.load_iris() X = iris.data y = iris.tar..
2024.01.17 -
머신러닝 - 11. 랜덤 포레스트(Random Forest)
랜덤 포레스트 랜덤 포레스트(Random Forest)는 분류/회귀 분석에 사용되는 결정 트리의 앙상블(Ensemble)이다. 결정 트리의 과대적합과 같은 문제점을 해결하기 위한 전략으로써, 랜덤 포레스트 모델은 여러 개의 의사 결정 트리를 조합한 모델이다. 좀 더 정확히는 다수의 결정 트리를 만들어, 이들로부터 평균을 내는 방식으로 동작한다. 개개의 트리는 분산이 높은 위험이 있으나, 앙상블을 통해 성능을 높이고 과대적합의 위험을 줄일 수 있다. 랜덤 포레스트는 앙상블 방법 중 배깅(Bootstrap Aggregation, Bagging)을 적용한다. 배깅에 간단히 설명하자면, 기존의 학습 데이터로부터 랜덤 하게 '복원추출'하여 동일한 사이즈의 데이터셋을 여러 개 만들어 앙상블을 구성하는 여러 모델을 ..
2024.01.17 -
머신 러닝 실습 - 3. 결정 트리로 붓꽃 데이터 분류
이 글에서는 Scikit-learn의 sklearn 라이브러리를 사용하여 결정 트리 모델을 훈련하고, 파라미터들을 조절해가며 성능을 비교한다. 결정 트리에 관한 이론적 내용을 알고 싶다면 이곳으로. 시행 1 1.1. 파라미터 불순도 트리 최대 깊이 랜덤 스테이트 리프 노드 최소 샘플 수 Gini Impurity 5 1 3 1.2. 코드 (나머지 시행에서는 올리지 않음) from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn import tree import matplotlib.pyplot as plt fro..
2024.01.16 -
머신러닝 - 10. 결정 트리 (Decision Tree)
결정 트리 결정 트리는 의사 결정 규칙과 그 결과들을 트리 구조로 도식화한 의사 결정 지원 도구의 일종이다. 이는 회귀와 분류 모델 모두에 사용할 수 있다. 결정 트리라는 이름에서 알 수 있듯, 일련의 질문에 대한 결정을 통해 데이터를 분해하는 모델이다. 위 그림 1을 보면 쉽게 이해할 수 있다. 특성에 대한 질문을 통해 포유류와 비 포유류로 나누고, 다시 나머지들에 대한 질문이 진행된다. 스무고개 같은 느낌으로 진행된다 할 수 있다. 이러한 단계에서 가장 처음 노드인 '포유류인가?'는 루트 노드(Root Node), 가장 말단에 있는 '악어', '강아지'등은 리프 노드(Leaf Node) 내지는 터미널 노드(Terminal node)라고 부른다. 중간에 있는 분기점들인 '조류인가', '사람보다 큰가'등..
2024.01.16