체인의정석

머신러닝 스터디 02- 지도학습(분류 & 회귀) 본문

빅데이터&인공지능/인공지능

머신러닝 스터디 02- 지도학습(분류 & 회귀)

체인의정석 2020. 7. 7. 22:35
728x90
반응형

분류와 회귀

지도학습 - 분류/회귀가 존재

 

분류 - 가능성 있는 여러 클래스 레이블 중 하나를 예측하는 것.

이진분류(딱 2개의 클래스로 나뉨), 다중 분류(셋 이상의 클래스로 나뉨)가 존재.

이진 분류 => 예/ 아니오

학습하고자 하는 것이 양성 클래스, 학습하려 하지 않는 것이 음성 클래스

회귀 => 연속적인 숫자/부동소수점수

연속성이 있는가? => 있다면 회귀, 없다면 이진 분류

일반화, 과대적합, 과소적합

일반화 -> 모델이 처음 보는 데이터에 대해 정확하게 예측할 수 있으면 일반화 되었다고 합니다.

훈련 세트와 테스트 세트가 매우 비슷하다면 그 모델이 테스트 세트에서도 정확히 예측하리라 기대가 가능합니다.

 

과대적합 -> 데이터가 복잡하고 샘플에 너무 가깝게 맞춰져서 일반화 되기 어려운 것.

과소적합 => 데이터의 다양성을 잡아내지 못하고 너무 간단한 모델이 선택되는 것.

 

데이터의 복잡성을 높이기 위해서는 다양한 데이터를 넣어야 한다. 데이터의 복잡성이 너무 높아지면 과대적합이 너무 낮아지면 과소적합이 일어나기 때문에 일반화를 하기 위해서 적절한 양을 학습하는 것이 중요하다.

 

지도 학습 알고리즘

1. 코드 업데이트

make_blobs로 업데이트를 하지 않으면 에러가 나온다.

X,y = make_blobs()
mglearn.discrete_scatter(X[:,0], X[:,1], y)
plt.legend(["클래스 0","클래스 1"], loc=4)
plt.xlabel("첫 번째 특성")
plt.ylabel("두 번째 특성")
print("X.shape: {}".format(X.shape))

 

2. 폰트 깨짐 문제

plt.rc('font', family='NanumGothic') # For Windows

http://blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221225208497

 

[Python] matplotlib 한글폰트 설정방법

Python 데이터를 분석할 때 시각적으로 확인하기 위해 matplotlib를 많이 이용합니다.한글폰트가 제대로 ...

blog.naver.com

 

3. 폰트 깨짐 문제 - 마이너스 부호

plt.rcParams['axes.unicode_minus'] = False

4. X.shape를 보면 포인트 26개와 특성 2개를 가지는 것을 알 수 있습니다. 

한마디로, 몇개의 포인트(데이터)가 있는지와 몇개의 특성 (레이블) 이 있는지를 알 수 있다는 것입니다. 

일단 아래와 같이 인위적인 소규모 데이터 셋을 사용을 먼저 한후 실제 데이터도 불러와 사용해 보도록 하겠습니다.

 

5. 위스콘신 유방암 데이터셋

종양은 양성과 악성으로 레이블 

데이터셋은 569개의 데이터 포인트와 30개의 특성으로 되어 있으며, 이는 data.shape로 확인이 가능합니다.

또한 클래스별 샘플 개수는 cancer.target_names와 np.bincount(cancer.target)으로 구할 수 있습니다. 

그리고 30개의 특성 의미는 이를 출력하면 얻을 수 있습니다. 

 

6. 특성 공학

다음 보스턴 데이터의 예시처럼 특성끼리 곱하여 특성의 수를 늘리는 것을 특성공학이라고 하며 이를 사용하면 아래와 같이 특성의 개수가 늘어나게 됩니다.

https://www.youtube.com/channel/UCHsRy47P2KlE749oAAjb0Yg?view_as=subscriber

 

타임해커

-블록체인/인공지능 -웹개발(프론트/백) -광고(페이스북/구글/네이버) -사업계획서 작성 -비전공생을 위한 IT 공부법 채널이름은 기획,마케팅,개발을 다 같이해서 업무성과를 내는데 드는 시간을

www.youtube.com

 

 

 

728x90
반응형
Comments