。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

[네이버클라우드] 클라우드 기반의 개발자 과정 7기/AI

ai 개념정리 2

quarrrter 2023. 5. 10. 08:25

1. train_test_split

2. validation split

3. matplotli b – scatter (산점도 )

4. R2 score ( 결정계수 )

5. 회귀분석 

6. 분류분석

7. 이진분류

8. 다중분류

9. 원 핫 인코딩 (One Hot Encoding)

10. 난수값 (random_state)

 


1. train_test_split

데이터셋을 훈련용(train)과 검증용(test)으로 나누는 이유는 모델의 성능을 정확하게 평가하고 일반화할 수 있는 모델을 만들기 위해서입니다.

만약 모든 데이터를 훈련에 사용하고 테스트를 하게 된다면 모델은 훈련 데이터에 대해서는 매우 높은 정확도를 보일 수 있지만, 새로운 데이터에 대해서는 일반화하지 못한 예측을 할 수 있습니다. 즉, 일반화 능력이 부족한 모델이 되어버리는 것입니다.

따라서, 일반적으로 데이터를 훈련용과 검증용으로 나누어 훈련 데이터를 사용하여 모델을 훈련한 후, 검증 데이터를 사용하여 모델의 성능을 평가하고 조정하는 과정을 거치게 됩니다. 이를 통해 일반화 성능이 높은 모델을 만들 수 있게 됩니다.

또한, 검증용 데이터를 따로 두는 것은 모델을 만들 때 사용한 데이터를 검증용으로 사용하게 되면, 모델이 이전에 본 적이 있는 데이터에 대해서는 매우 높은 정확도를 보일 수 있지만 새로운 데이터에 대해서는 일반화하지 못한 예측을 하게 됩니다. 이를 '과적합(overfitting)'이라고 부르는데, 이를 방지하기 위해서도 데이터셋을 나누는 것이 중요합니다.

따라서, 훈련용과 검증용 데이터셋을 나누는 것은 모델의 일반화 성능을 향상시키기 위한 중요한 전략입니다.

통상 7:3 비율

 

2. validation split

모델의 학습에 직접적으로 관여하지 않으며, 학습데이터에 과적합 되지 않게 하도록 하는 기술

학습이 끝난 모델에 적용(w값이 제대로 나왔는지 검증)

6:2:2

 

3. matplotli b – scatter (산점도 )

산점도(scatter plot)는 두 개의 변수 간의 관계를 나타내기 위해 사용되는 그래프입니다. 각 축은 변수를 나타내며, 각 점은 두 변수 간의 관계를 나타냅니다. 일반적으로 연속형 변수의 값을 나타내기 때문에 점이 모여 있는 정도로 변수 간의 상관 관계를 파악할 수 있습니다. 산점도는 데이터 분포의 패턴을 확인하는 데 유용하며, 변수 간의 관계를 쉽게 파악할 수 있습니다.

 

 

4. R2 score ( 결정계수 )

R2 score, 또는 결정계수는 회귀 분석에서 모델이 데이터를 얼마나 적합한지 확인하는 통계 방법. R2 score는 0과 1 사이의 값을 가지며, 1에 가까울수록 모델이 데이터를 잘 설명한다는 의미입니다.

[R2score]
from sklearn.metrics import r2_score, accuracy_score #회귀는 r2, 분류는 acc
r2 = r2_score(y, y_predict)  #실제 y값이랑 예측 y값 비교
print('r2스코어 : ', r2)

 

 

5. 회귀분석 (regression)

기울기 찾기(계속 변화하는 데이터, 연속된 값을 예측). 따라서 과적합 되지 않게 주의.

ex) 주가 데이터, 자동차 배기량 ,연식 등 중고차 정보

 

손실함수 종류: mse(평균제곱오차손실): 예측값과 실제값의 차이를 제곱하여 평균한 값. 크면 차이 큼.

 

 

6. 분류분석 (Classification)

종류를 예측. 종류로 이진분류(0또는 1)와 다중분류(3개 이상 클래스)가 있음

 

7. 이진분류

퍼셉트론과 구조가 같다.

참(1)또는 거짓(0)을 판별하기 때문에 출력값이 하나다.

sigmoid 함수를 이용하여 0과 1로 가공한다. 

직선보다 적절한 곡선을 통해 분류를 한다. 

model.add(Dense(1, activation='sigmoid'))	# 출력층

손실함수 종류: binary_crossentropy(이항교차 엔트로피)/ 활성화함수(activation): sigmoid 사용

 

8. 다중분류(class가 3개 이상)

 

손실함수 종류:

1. categorical_crossentropy(범주형교차 엔트로피)/ activation: softmax 사용(모든 벡터 요소값이 0과 1사이의 값이 나오고 모든 합이 1이됨. 원핫인코딩 필요

2. sparse_categorical_crossentropy: 원핫인코딩된 상태일 필요없이 정수 인코딩 된 상태에서 수행가능 

 

9. 원 핫 인코딩 (One Hot Encoding)

범주형(categorical) 데이터를 수치형 데이터로 변환하는 방법 중 하나로,

각 범주(category)를 이진(binary) 특성으로 변환하는 것입니다.

예를 들어, "red", "green", "blue"라는 3개의 색상 범주를 가지는 데이터가 있다면, 각각을 [1,0,0], [0,1,0], [0,0,1]와 같은 이진 특성으로 변환할 수 있습니다.

 

10. 난수값 (random_state)

 

데이터를 학습용과 테스트용으로 나눌 때, 무작위로 데이터를 섞는 과정에서 사용되는 시드(seed)값을 의미합니다. 따라서, 이 값이 같다면 데이터를 섞는 과정에서 무작위로 선택되는 인덱스가 동일하게 생성되므로, 학습용과 테스트용 데이터를 일정한 방식으로 분할할 수 있습니다. 즉, 모델 학습 결과를 재현하기 위해 사용되는 값

 

데이터셋을 무작위로 분할하는 과정에서 random_state 값이 크면 좀 더 많은 수의 데이터를 섞어서 사용하기 때문에 모델의 학습이 더욱 일반화될 가능성이 높아지기 때문입니다. 즉, random_state 값이 커질수록 데이터셋을 분할할 때 더 많은 수의 데이터가 무작위로 섞이게 되므로 훈련 데이터와 테스트 데이터가 서로 비슷해지고, 이로 인해 모델의 성능이 안정적으로 나오는 것입니다.

'[네이버클라우드] 클라우드 기반의 개발자 과정 7기 > AI' 카테고리의 다른 글

Ai 개념 정리 3  (1) 2023.05.10
[수업자료] Ai 3일차 코드  (0) 2023.05.10
[수업자료] Ai 2일차 코드  (1) 2023.05.09
AI 개념 정리  (2) 2023.05.08
AI  (0) 2023.05.08