분류 전체보기 56

[머신러닝] 특성 공학과 규제

과대적합(overfitting)과 과소적합(underfitting) 과대적합(overfitting) 과대적합(overfitting)은 모델이 훈련 데이터를 과하게 학습한 것을 의미합니다. 너무 훈련 데이터에 학습이 잘 되 있으면 훈련 데이터 이외의 학습되지 않은 데이터가 들어오면 분류하지 못하게 됩니다. 위의 그림처럼 파란 선의 모델이 훈련데이터를 정확히 다 거치며 과대적합되고 있습니다. 이는 모델의 복잡도가 필요 이상으로 높기 때문에 이를 방지하기 위해 규제를 통해 모델의 복잡도를 낮추어 간단하게 해주어야 합니다. 모델을 단순하게 하고 과대적합의 위험을 감수시키기 위해 모델에 제약을 가하는 것을 규제라고 합니다. 학습하는 동안 적용할 규제의 양은 하이퍼파라미터(hyperparameter)가 결정합니다...

AI 2021.07.17

[머신러닝] 선형회귀(Linear Regression)

선형회귀(Linear Regression) 선형회귀 분석은 데이터를 표현하는 회귀선이라고 불리는 하나의 직선을 찾는 것에서부터 시작합니다. 단순 선형회귀 분석은 x변수와 y변수 간의 관계를 y=ax+b와 같은 하나의 선형 관계식으로 표현할 수 있습니다. 기울기 a, 절편 b에 따라 그 선의 모양이 정해지기 때문에 최적의 a와 b를 얻는 것을 목표료 합니다. 다항회귀(Polynomial Regression) 데이터가 단순한 선형보다 복잡한 형태를 가질 수 있습니다. 비선형 데이터를 학습하는 데 선형 모델을 사용할 수 있는데, 이렇게 하는 간단한 방법은 각 특성의 거듭제곱을 새로운 특성으로 추가하고, 이 확장된 특성을 포함한 데이터셋에 선형 모델을 훈련시키는 것입니다. 이런 기법을 다항 회귀라 합니다. 관계..

AI 2021.07.17

KNN(K-Nearest Neighbors) 회귀(regression)

K-Nearest Neighbors 회귀의 원리 K-Nearest Neighbors 알고리즘을 활용한 회귀도 분류의 원리와 같습니다. 예를 들어 기존에 있던 생선의 데이터를 가지고 새로 잡은 생선의 무게를 예측해야 할 때, 무게를 모르는 새로운 생선 데이터가 들어오면 가장 가까운 k개의 이웃을 찾아 그 이웃들의 평균을 계산해 값을 예측합니다. k = 3이라고 가정했을 때 새로 잡은 생선과 가장 근접한 3개의 이웃의 무게가 125, 130, 120이라면 세 값의 평균인 125로 예측합니다. Weighted Regression(가중 회귀) 가까운 이웃들의 단순 평균을 구하는 것이 아닌 각 이웃이 얼마나 가까이 있는지에 따라 가중 평균을 구할 수 있습니다. 다시 말해 거리가 가까울수록 데이터가 더 유사할 것이..

AI 2021.07.17

[머신러닝 데이터] 전처리

데이터 전처리 ◈ 데이터 전처리는 무엇일까? 데이터 전처리는 데이터에 이상값을 찾아 분석하기 좋게 데이터를 고치는 모든 작업을 말합니다. 데이터에 이상값이 있을 때 데이터 분석 및 통계 모델링 결과에 영향을 주어 결과값이 크게 변경될 수 있습니다. 데이터 세트에서 이상값의 불리한 작용에는 다음과 같습니다. 오차 분산을 증가시키고 통계 검정의 검정력을 감소시킨다. 이상값이 무작위로 분포되지 않으면 정규성이 감소 할 수 있다. 실질적인 관심이 있는 추정치를 편향시키거나 영향을 줄 수 있다. ◈ 데이터 전처리 방법 1. 데이터 통합(Integration) 다양한 로그 파일 및 데이터베이스의 통합 일관성 있는 데이터 형태로 변환 2. 데이터 변환(Transformation) 정규화(nomalization) # ..

AI 2021.07.16

[머신러닝 데이터] 훈련 세트와 테스트 세트

훈련 세트(training set) 모델 훈련에 쓰이는 데이터 세트. 테스트 세트(test set) 모델의 실제 정확도를 판별하기 위해 쓰이는 데이터 세트. 전 글에서 훈련 세트와 테스트 세트를 나누지 않고 모델을 만들어 훈련을 했습니다. 결과는 당연히 100%로 나왔습니다. 머신러닝 알고리즘의 성능을 제대로 평가하려면 훈련 데이터와 평가에 사용할 데이 터가 각각 달라야 합니다. 그러기 위해 준비된 데이터 중에 일부를 떼어 훈련 세트와 테스트 세트를 나누어 줍니다. 훈련 세트와 테스트 세트를 나누어 줄 때 데이터가 한 쪽으로 편향되는 것을 방지하기 위해 데이터를 섞어주어야 합니다. scikit-learn 에서 train_test_split()이라는 함수를 사용해 비율에 맞게 섞어 훈련 세트와 테스트 세트..

AI 2021.07.15

KNN(K-Nearest Neighbors) 알고리즘 기본개념

K-Nearest Neighbors 알고리즘은 어떤 데이터에 대한 답을 구할 때 주위의 다른 데이터를 보고 다수를 차지하는 것을 정답으로 사용하는 알고리즘입니다. 빨간 점의 새로운 데이터가 주어졌을 때 이 데이터를 Class A로 분류할지, Class B로 분류할지 판단하는 문제입니다. k=3 으로 주어졌을 때 빨간 점의 가장 가까운 주변의 3개의 데이터를 확인하고, 3개의 데이터 중 더 많은 데이터가 포함되어 있는 범주로 분류합니다. 위의 그림에서는 노란점(Class A) 1개 보라점(Class B) 2개가 있기 때문에 k=3 일 때는 해당 데이터가 Class B로 분류됩니다. k=6 으로 주어졌을 때는 원 안에 노란점(Class A) 4개 보라점(Class B) 2개가 있습니다. 따라서 k=6 일 때..

AI 2021.07.14

[Python] 백준 2292(벌집)

백준 2292(벌집) 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력&출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 예) 입력 : 13 출력 : 3 코드설명 1 2 3 4 5 6 7 8 9 num = int(input()) layer = 1 sum = 1 while num > sum: sum = s..

Python 2021.06.11

[Elasticsearch & Kibana&Logstash] Linux MySQL data 준 실시간 시각화 하기

Linux MySQL data 준 실시간 시각화 하기 1. Logstash 다운로드 지금까지 데이터를 전송한 후 csv파일을 만들어서 데이터 시각화를 해 보았는데 이번에는 데이터를 전송할 때마다 준 실시간으로 시각화를 해 보겠습니다. linux에 Logstash를 install 해 줍니다. ~$ sudo apt-get install logstash 2. DB-connector 다운로드 DB-connector을 다운로드합니다. ~$ wget 'https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.tar.gz' 다운로드한 압축 파일을 풀어줍니다. ~$ tar -xvf ./mysql-connector-java-8.0.18.tar..

ELK Stack 2020.11.04