ML/[책] 혼공머신

    4) 다양한 분류 알고리즘 (2)

    4) 다양한 분류 알고리즘 (2)

    4-2) 확률적 경사 하강법 럭키백 이벤트를 성공적으로 해낸 한빛마켓은 이제 새로운 문제에 당면했다. 수산물을 공급하겠다는 곳이 너무 많아 샘플을 골라내는 일이 너무 힘들 뿐더러, 추가되는 수산물은 아직 샘플을 갖고 있지도 않으며 어느 생선이 먼저 올지도, 모든 생선이 도착할 때까지도 기다릴 수도 없는 상황에서 영업 팀은 새로운 생선이 도착하는 대로 가능한 즉시 훈련 데이터를 제공하겠다고 약속한 상태이다.. 1) 한빛마켓이 당면한 문제는 훈련 데이터가 한번에 준비되는 것이 아니라 조금씩 전달된다는 것이다. 그렇다면 기존의 훈련 데이터에 새로운 데이터를 추가하여 모델을 매일매일 다시 훈련하면 어떨까? → 괜찮은 방법이나 점점 시간이 지남에 따라 모델을 훈련하기 위해 서버를 늘려야 하고 지속가능한 방법처럼 ..

    4) 다양한 분류 알고리즘 (1)

    4) 다양한 분류 알고리즘 (1)

    4-1) 로지스틱 회귀 럭키백은 구성품을 모른 채 먼저 구매하고, 나중에서야 비로소 구성품을 알 수 있는 상품이다. 그러나 마케팅 팀은 럭키백에 포함된 생선의 확률까지 알려주고 싶어한다. (A 럭키백: 도미 확률이 높음!) 머신러닝으로 이 문제를 한번 해결해볼까? 럭키백의 확률 주어진 생선은 7개이고, 생선의 크기, 무게 등이 주어졌을 때 7개 생선에 대한 확률을 출력해야 한다. 이번에는 길이, 높이, 두께 외에도 대각선의 길이, 무게도 사용할 수 있다. 확률은 숫자니까 회귀일까, 7개 생선에 대한 문제니까 분류일까? 데이터 준비 k-최근접 이웃 분류기 확률 예측 사이킷런의 KNeighborsClassifier 클래스 객체를 만들고 훈련세트로 모델을 훈련한 다음, 훈련세트와 테스트세트의 점수를 확인해보자..

    3) 회귀 알고리즘과 모델 규제 (2)

    3) 회귀 알고리즘과 모델 규제 (2)

    3-3) 특성 공학과 규제 다항회귀로 농어의 무게를 어느정도 예측할 수 있지만, 여전히 훈련세트보다 테스트세트의 점수가 높은 점이 찜찜하다. 이 문제를 해결하려면 제곱보다 더 고차항을 넣는 방식밖엔 없을까..? 사실 우리가 가진 데이터에는 농어의 길이 뿐만 아니라 높이와 두께 데이터도 존재한다.선형회귀는 특성이 많을수록 엄청난 효과를 내기 때문에 높이와 두께 또한 다항회귀에 적용해야 한다.또한 귀찮게 직접 만들지 말고 사이킷런의 PolynomialFeatures 클래스를 사용하자! 다중 회귀 앞에서는 하나의 특성만을 사용하여 선형회귀 모델을 훈련시켰다. 여러 개의 특성을 사용한 선형회귀는 다중회귀라고 부른다. 1개의 특성을 사용했을 때 선형회귀 모델이 학습하는 것은 직선이다. 2개의 특성을 사용하면 선형..

    3) 회귀 알고리즘과 모델 규제 (1)

    3) 회귀 알고리즘과 모델 규제 (1)

    3-1) k-최근접 이웃 회귀 지도 학습 알고리즘은 크게 분류와 회귀(regression)로 나뉜다. 회귀는 분류 문제처럼 클래스 중 하나로 분류하는 것이 아니라 임의의 어떤 숫자를 예측하는 것이다. 예를 들면 내년도 경제 성장률 예측이나 배달 도착할 시간 예측, 농어 무게 예측 등이 있다. 두 변수 사이의 상관관계를 분석하는 방법을 회귀라고 한다. k-최근접 이웃 회귀 k-최근접 이웃 분류 알고리즘은 예측하려는 샘플에 가장 가까운 샘플 k개를 선택한 후 샘플들의 클래스를 확인하여 다수 클래스를 새로운 샘플의 클래스로 예측한다. k-최근접 이웃 회귀 알고리즘은 분류와 똑같이 예측하려는 샘플에 가장 가까운 샘플 k개를 선택한다. (샘플의 타깃은 어떤 클래스가 아닌 임의의 수치) 이 샘플들 수치의 평균을 구..

    2) 데이터 다루기 (수상한 생선을 조심하라!)

    2-1) 훈련 세트와 테스트 세트 도미 35마리와 빙어 14마리를 모두 저장하고 맞추는 거라면 100%를 달성하는 게 당연하지 않나요? 지도 학습과 비지도 학습 머신러닝 알고리즘은 크게 지도 학습과 비지도 학습으로 나눌 수 있다. 지도 학습 알고리즘은 훈련하기 위한 데이터와 정답이 필요하다. 지도 학습에서는 데이터와 정답을 입력과 타깃이라고 부르며, 이 둘을 합쳐 훈련 데이터 라고 부른다. 입력으로 사용된 길이와 무게를 특성이라고 한다. 지도 학습은 정답(타깃)이 있으니 알고리즘이 정답을 맞히는 것을 학습한다. (분류, 회귀) 비지도 학습은 타깃 없이 입력 데이터만 사용한다. 이런 알고리즘은 무언가를 맞힐 수는 없지만 데이터를 잘 파악하거나 변형하는 데 도움을 준다. (클러스터링, k-means) 훈련 ..

    1-3) 마켓과 머신러닝

    가장 간단한 머신러닝 알고리즘 중 하나인 k-최근접 이웃을 사용하여 2개의 종류를 구분하는 머신러닝 모델을 훈련하자. 생선 분류 문제 마켓에서 '도미', '곤들매기', '농어', '강꼬치고기', '로치', '빙어', '송어'를 팔 때, 생선이름을 잘 못 외우는 직원을 위해 생선을 분류해주는 프로그램을 만들어주자. 머신러닝은 누구도 알려주지 않은 기준 (ex. 30~40cm 길이 생선은 도미이다)을 찾아서 생선을 판별해낼 것이다. 생선의 길이를 x축, 무게를 y축으로 하는 그래프를 만들어서 생선을 그래프의 점으로 표시해보자. 이러한 그래프를 산점도 라고 한다. 파이썬에서 과학계산용 그래프를 그리는 대표적인 패키지는 맷플롯립(matplotlib) 이다. 이 패키지를 임포트하고 산점도를 그리는 scatter(..