1. Intro - 무료강의

인공지능

컴퓨터가 사람을 흉내 내는 것이다. 즉, 사람의 지능적인 부분을 모방할 수 있도록 하는것이다.


머신러닝

인공지능의 한 분야로 기계가 스스로 학습하는것을 의미한다.

예로 자율운행 자동차, 사람얼굴 인식 등등 활용되고 있다.


scikit-learn

이라는 대표적 라이브러리를 배워 볼것이다.


환경설정

아나콘다를 사용, 주피터 사용해서 가상 환경을 설정하겠다.

  • 참고로 나는 아나콘다 가상환경에 python 3.9.7버전이다.

모듈 최신화

아나콘다를 통해 자동 설치한 모듈들이 버전이 다를 수 있기 때문에 꼭 최신화

# 버전 0.24.2 -> 1.1.2
# %pip install scikit-learn --user --upgrade
import sklearn
print(sklearn.__version__)
'1.1.2'


데이터 세트 분리 - 훈련, 테스트

일반적으로 우리가 가지고 있는 데이터를 훈련, 테스트 세트로 분류한다.

훈련 세트만을 가지고 모델을 만든 후 테스트 세트로 모델이 잘 만들어 졌는지 테스트한다.

  • 보통 8:2 비율로 나눔(훈련 세트 : 테스트 세트)


머신러닝의 3가지 방법

지도 학습, 비지도 학습, 강화 학습(Supervised, Unsupervised, Reinforcement)

지도 학습(Supervised Learning)

이미지나 데이터 등을 input data로 주면서 무슨 데이터인지 알려준다.

이것을 학습을 통해 배우고, 기계가 학습을 완료하면 모델을 생성한다.

여기에서 new data를 모델에 줘서 이것이 뭔지 응답을 받는다.

비지도 학습(Unsupervised Learning)

이미지나 데이터 등을 input data로 주는데 여기선 이 데이터가 뭔지 알려주지 않는다.

그리고 바로 기계한테 물어보는것이다.

예로 학습한 기계에게 두 그룹으로 나눠 보라고 하면 기계 스스로 판단해서 응답을 받게된다.

강화 학습(Reinforcement Learning) - 생략

행동에 대한 보상을 통해서 게임처럼 판단한다.

누적 보상을 최대화 하는 의사결정을 한다.

즉, 한쪽의 데이터에 접근시 -이고 반대쪽 데이터는 +인것을 알게 되는 것처럼 경험을 통해서 누적 보상을 최대화 하는 쪽으로 결정한다.


지도 학습(Supervised Learning)

  • 정답이 있는 데이터를 통해

  • 데이터 분류 / 올바른 결과 예측

  • 종류 : 회귀, 분류(Regression, Classification)

    • 예측하는 값에 따라 분류. 각각 연속형, 범주형 변수인 특징

회귀(Regression)

변수들 간의 상관관계를 찾는 것, 연속적인 데이터로부터 결과를 예측.

수학 그래프 생각해보면, 몇개의 점들을 그려놓고 일직선으로 선을 그으면??

구한 점이 아닌 다른 부분점들의 값들을 예측이 가능하죠.

예측 결과가 숫자일 때

  • 예 : 키에 따른 몸무게, 사용 기간에 따른 스마트폰 가격…

분류(Classification)

주어진 데이터를 정해진 범주(category)에 따라 분류

수학 그래프 생각해보면, 영화의 재미와 폭력성을 각 x, y축이라 할때

그래프 왼쪽 아래에 몰린 영화그룹과 오른쪽 위에 몰린 영화그룹이 있고,

각 그룹 순서대로 싫어요와 좋아요를 가진다면??

새로운 영화가 재미, 폭력성을 가진다면 영화가 좋아요를 받을거라는 예측이 가능하죠.

예측 결과가 숫자가 아닐 때

  • 예 : 스팸 메일 필터링, 시험 합격 여부, 재활용 분리수거 품목…


비지도 학습(Unsupervised Learning)

  • 정답이 없는 데이터를 통해
  • 데이터의 유의미한 패턴 / 구조 발견
  • 종류 : 군집화(Clustering)

군집화(Clustering)

유사한 특징을 가지는 데이터들을 그룹화

  • 예 : 고객 세분화, 소셜 네트워크 분석, …


영화 추천 시스템

  1. Demographic Filtering (인구통계학적 필터링)
    • 참고 링크에 제시한 공식 사용
  2. Content Based Filtering (컨텐츠 기반 필터링)
    • 줄거리 - TfidfVectorizer (TF-IDF 기반의 벡터화) 방식 사용
    • 유사도 : 코사인 유사도 - linear_kernel 방식 사용
    • 장르, 감독, 키워드 등 다양한 요소 - CountVectorizer 방식 사용
    • 유사도 : 코사인 유사도 - cosine_similarity 방식 사용
  3. Collaborative Filtering (협업 필터링)
    • surprise Reader 공식 문서 사용
    • 사용자 리뷰 방식

댓글남기기