이번엔 로지스틱 회귀에 대해 공부한다. 로지스틱 회귀는 앞에서 공부한 입력값에 대한 결과 값을 예측하는 단순 선형 회귀와 달리 2가지의 클래스 중 어디에 속하는지 분류하는 이진 분류에 대한 알고리즘이다. 처음에 공부하면서 로지스틱 '회귀'인데 왜 분류하는 알고리즘인지 이해가 안됐다. 로지스틱 회귀는 시그모이드 함수를 0~1 사이의 예측값을 이용해 결과를 분류하는 회귀가 포함된 분류 알고리즘이다. 이번엔 성적에 따라 불/합 여부를 판단하는 문제를 가정하자. 45 : 불 50 : 불 55 : 불 60 : 합 65 : 합 70 : 합 이에 대한 그래프는 다음과 같다. 55점과 60점 사이에서 합격과 불합격이 갈린다. 그 사이의 점수들은 합격일 가능성이 높은 부분과 낮은 부분으로 갈린다. 이 사이의 점수들이 합..
케라스는 텐서플로우보다 쉽게 구현할 수 있다. 텐서플로우는 모델을 직접 하나하나 설정해줘야 하지만 케라스는 메소드가 사용자 친화적으로 개발되어 있어 사용하기엔 편하다. 케라스의 구현 과정은 먼저 Sequential로 모델을 만들고 add로 입력과 출력 벡터와 같은 필요한 정보를 추가해간다. import numpy as np import matplotlib.pyplot as plt from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras import optimizers x = [1,2,3,4,5,6,7,8,9] #공부 시간 y = [11,22,33,44,53,66,7..
텐서플로우로 앞서 설명한 단순 선형 회귀를 구현한다. 케라스로 구현해도 좋지만 텐서플로우 먼저 해봄 먼저 경사 하강법에 필요한 미분을 먼저 구현한다. import tensorflow as tf w = tf.Variable(2.) #변수 w에 2를 넣는다 def f(w): y = w**2 z = 2*y + 5 return z with tf.GradientTape() as tape: z = f(w) gradients = tape.gradient(z,[w]) print(gradients) 방정식 f(w)를 구현한다. 이 방정식은 w의 cost값 변화에 대한 그래프이다. tape.gradient(z,[w])는 타겟(z)에 대한 w의 미분을 계산해주는 메소드이다. y = w**2을 dy = dx*2*w 미분식을 ..
분류와 회귀의 차이 분류는 미리 정의된 여러 클래스 중 하나를 예측하는 것 - 이진분류 : 정상과 비정상 클래스 두개로 분류 - 다중분류 : 예측해야할 클래스가 여러개인 경우 회귀는 기존의 데이터를 바탕으로 입력 변수가 주어진 경우 숫자값을 예측하는 것 - 특정 범위의 무한한 실수들 중에서 대표되는 값을 선택 - 연속된 값들 중 어디에 점을 찍을 수 있는지 예측 https://watchout31337.tistory.com/396 회귀 주어진 독립 변수와 종속 변수 사이의 관계를 학습하여 데이터를 예측하는 알고리즘 둘 이상의 관계(feature들의 관계)를 값들의 연속적인 문제로 찾고자 할 때 사용 ex) 주택의 면적, 주택의 위치, 편의시설 등에 따른 주택의 가격 예측 독립변수 : 주택의 면적, 주택의 ..
K - Nearest Neighbor KNN - 특정공간 내에서 K-NN은 새로 들어온 입력값이 어떤 그룹의 데이터와 가장 가까운가 분류하는 알고리즘 - k는 몇 번째로 가까운 데이터까지 살펴볼 것인가를 정함 - k의 default는5, k의 값이 짝수일 경우 동점이 되어 하나의 결과를 도출할 수 없으므로 홀수를 사용함 장점 - 높은 정확도 - 단순하며 효율적(모델을 미리 생성하지 않음) - 상위 k개의 데이터만 활용하기 때문에 오류 데이터가 결과에 미치지 않음 - 데이터 분산에 대한 추정을 만들 필요 없음 단점 - 데이터가 많을수록 처리 시간 증가 - 모델이 미리 생성되지 않아 새로운 데이터에 대한 학습 시간보다 분류/예측 시간이 더 걸림 거리 기준(유클리드 제곱 거리) - 새로운 데이터와 k개의 데이..
머신러닝 알고리즘 지도 학습 - 정답지(Labeling)이 있는 데이터를 대상으로 학습하는 과정 분류(classification) 예측,회귀(Regression) 비지도 학습 - 정답지(Labeling)이 없는 데이터를 비슷한 특징끼리 군집화하여 새로운 결과를 예측하는 과정 - 답을 맞히는 용도로 사용하진 않음 차원축소(Dimension Reduction) 군집화(Clustering) 연관성 규칙 발견(Association Rule) 데이터 전처리 정규화(Normalization) feature마다 스케일이 크게 다를 경우의 전처리 방법 - Min-Max scaling 데이터의 최소값은 0, 최대값은 1로 변환 - 표준화(Standardization) feature마다 해당 값의 단위가 다를 때, 대상 ..
단어 집합 단어 집합은 서로 다른 단어들의 집합이다. book과 books는 비슷해보이지만 단어 집합의 의미에선 다른 단어이다. 이렇게 중복을 허용하지 않고 모든 단어를 모아 놓은 것을 단어 집합이라고 한다. 이 단어들을 가지고 숫자(사실은 벡터)로 바꾸는 방법을 배운다. 원핫 인코딩을 하기 전에 먼저 단어 집합을 만들어야 한다. 중복 없이 다른 단어 500개가 모여서 문장을 만들면 크기가 500인 단어 집합이 만들어진다. 이 집합에 1부터 500까지의 인덱스를 부여한다. 고유한 인덱스를 가진 단어들을 벡터로 바꿔야한다. 이렇게 만들어진 벡터 중 표현하고 싶은 단어의 인덱스에 1을 부여하고, 다른 인덱스는 0을 부여한다. 케라스에서 지원하는 to_categorical을 이용해 원핫인코딩을 사용할 수 있다..
데이터셋의 자료형은 대부분 수치형(정수나 실수 등)을 사용해 표현한다. 수치형이 데이터를 불러와 평균을 계산하거나 plot으로 표현하기에 편하기 때문이다. 하지만 어쩔 수 없이 여러 속성값을 이용해 표현해 놓은 데이터가 있기 마련이다. 이런 데이터들을 속성 값에 따라 수치형으로 바꿔 표현해주는 get_dummies() 함수가 있다. 위 데이터프레임에서 paymentMethod는 creditcard, storecredit, paypal 3가지의 속성값을 가진다. 이 속성값이 사용되었는지에 따라 0이나 1로 표현해주는 함수이다. import pandas as pd df = pd.read_csv('/Users/a111/ML/book-resources-master/chapter2/datasets/payment_..
머신러닝 학습을 할 때 내가 준비한 데이터로 train set과 test set을 나눠 학습을 하면 고정된 set에만 올바르게 동작하는 과적합이 발생한다. 과적합이 발생했을 때 해결 방법은 간단하게 데이터를 늘려 학습량을 늘리는 방법이 있다. 하지만 무턱대고 학습량을 늘리면 시간이 너무 오래걸릴 수 있다. 이에 대한 해결책을 아래에서 설명했다. https://watchout31337.tistory.com/403 과적합을 막는 방법 1. 데이터의 양 늘리기 데이터의 양이 적을 경우, 해당 데이터의 특정 패턴이나 노이즈까지 쉽게 학습하는 과적합 현상이 발생한다. 따라서 데이터의 양을 늘려 모델이 데이터의 일반적인 패턴 watchout31337.tistory.com 이런 방법들 말고도 앙상블(Ensemble)..
- Total
- Today
- Yesterday
- many-to-many
- Python
- SOME/IP
- porks
- automotive
- 로지스틱회귀
- cuckoo
- 이상탐지
- 머신러닝
- PCA
- many-to-one
- Ethernet
- 케라스
- automotive ethernet
- 크로스 엔트로피
- 차량용 이더넷
- 논문 잘 쓰는법
- AE
- 회귀
- SVM
- json2html
- 딥러닝
- one-to-many
- CAN-FD
- AVB
- HTML
- 차량 네트워크
- AVTP
- problem statement
- 단순선형회귀
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |