colab에서 진행


필요한 패키지, 모듈 임포트

import numpy as np                           
import pandas as pd
import sklearn 
import matplotlib.pyplot as plt

예제용 붓꽃데이터 불러오기

from sklearn.datasets import load_iris         
iris = load_iris()

data, label, features를 불러오기 쉽게 변수 지정

더보기
data = iris.data                    # 전체 feature 데이터
label = iris.target                  # 꽃 세가지 라벨 정보
columns = iris.feature_names          #각 칼럼의 항목 이름

dara frame으로 바꿔줍니다.

data = pd.DataFrame(data, columns=columns)
data.head()

 

학습용, 테스트용으로 데이터 쪼개기.

 data에서  x_train : 훈련용 feature, x_test: 테스트용쪼개지고 label에서는 y_train : 훈련용 label, y_test: 테스트용 label이 쪼개지고, test_size는 0.2는 20%를 쪼개고 random_state는 얼마만한 힘으로 데이터를 뒤섞을지 정한다, 값이 자꾸 편향되게 나오면 다른 숫자로 섞어줘라.

from sklearn.model_selection import train_test_split    # 쪼개주는 모듈 임포트
  X_train, X_test, y_train, y_test = train_test_split(data, label, test_size=0.2, random_state=2023)

 

 

coursera의 Supervised Machine Learning: Regression and Classification 강좌 내용입니다.


Jupyter Notebooks

데이터 사이언티스트 실무와 머신 러닝에서 가장 널리 쓰이는 툴.

Jupyter Notebooks에는 두 종류의 셀(cell)이 존재

 

1. Markdown cell : text 작성을 해서 코드를 설명

2. code cell : 셀제로 코드를 입력하는 창, 쉬프트+엔터로 코드를 실행한다.

'machine_learning > [coursera] Machine learning' 카테고리의 다른 글

Linear regression model part 2  (0) 2023.04.29
Linear regression model part 1  (0) 2023.04.29
Unsupervised learning part 2  (0) 2023.04.27
Unsupervised learning part 1  (0) 2023.04.27
Supervised learning part 2  (0) 2023.04.27

coursera의 Supervised Machine Learning: Regression and Classification 강좌 내용입니다.


 

비지도 학습

input x가 필요하지만 label y는 사용하지 않는다.

알고리즘은 데이터에서 구조를 찾는다.

 

비지도 학습 -  clustering(군집)

비슷한 데이터끼리 그룹핑한다.

 

비지도 학습 -  Anomaly detection(변칙 처리)

비정상적인 데이터(움직임)을 감지

 

비지도 학습 -  Dimensionality reduction(차원의 축소)

데이터를 더 적은 수로 압축시킨다.

 

 

Q. Of the following examples, which would you address using an unsupervised learning algorithm?  (Check all that apply.)

 

1. Given a set of news articles found on the web, group them into sets of articles about the same stories.

2.

Given email labeled as spam/not spam, learn a spam filter.

3. Given a database of customer data, automatically discover market segments and group customers into different market segments.

4. Given a dataset of patients diagnosed as either having diabetes or not, learn to classify new patients as having diabetes or not.

 

'machine_learning > [coursera] Machine learning' 카테고리의 다른 글

Linear regression model part 1  (0) 2023.04.29
Jupyter Notebooks  (0) 2023.04.27
Unsupervised learning part 1  (0) 2023.04.27
Supervised learning part 2  (0) 2023.04.27
Supervised learning part 1  (0) 2023.04.27

coursera의 Supervised Machine Learning: Regression and Classification 강좌 내용입니다.


비지도 학습은 출력값(output = y)가 제공되지 않는다.

예를 들면 지도학습의 예시에서는 인풋으로 종양의 크기, 나이등의 데이터와 라벨[종양이 악성인지 양성인지]을 학습 데이터로 사용했다. 비지도 학습에서는 환자의 나이와 종양의 사이즈에 대한 인풋은 주어지지만 종양이 양성인지 악성인지에 대한 라벨이 자료로 제공되지 않는다. 그렇기에 우리는 비지도 학습을 통해 환자의 나이와 종양 사이즈에 대한 그래프는 그려도 그 종양이 양성인지 악성인지는 알 수 없다. 대신 어떤 패턴이나 구조를 찾아낼 수 있다.

 

우측 그래프를 보면 데이터를 두가지 군집(clustering)으로 나눌 수 있다. 이렇게 군집으로 나누는 것이 전형적인 비지도 학습이라고 할 수있다.


clustering

 

예시1. 구글 뉴스

 구글 뉴스 관련된 뉴스끼리 묶어 보여주는 데에서 사용된다. 구글 뉴스는 상단에 해드라인이 있고 그 아래 관련된 다른 기사들이 있다. 헤드 라인에 나타난 키워드들로 알고리즘이 알아서 추측하여 클러스트링을 한 것이다.

 

예시2. DNA 데이터

각각의 행은 한 사람의 DNA  특징을 순서대로 정리한 데이터를 갖고 있다. 즉 어떤 열을 보면 여러 사람의 특정 DNA 특성(예를 들면 눈동자 색 혹은 키에 영향주는 유전자)을 알 수 있다. 

즉 아래의 Micro array은 개인의 활성화된 DNA 혹은 발현되지 않은 특정 DNA 등을 알 수 있고 각각의 데이터를 컬러로 구분해 두었다.

 

이 데이터 타입들을 통해 비지도 학습 알고리즘은 특성을 나누어 열(사람들)을 여러 타입으로 나누어 정리할 수 있다.

 

 

예시3.  AI 학습 사이트에서 고객들의 정보를 군집화할 때

 

첫번째 군집의 동기는 기술을 키우기 위한 지식을 찾고 있다, 두번째 군집은 경력을 개발하고 싶어한다. 세번째 그룹은 AI가 업데이트 되기를 기다린다.

 


비지도 학습

라벨 없이 데이터를 가져와 자동적으로 군집으로 그룹화 시키는 것

'machine_learning > [coursera] Machine learning' 카테고리의 다른 글

Jupyter Notebooks  (0) 2023.04.27
Unsupervised learning part 2  (0) 2023.04.27
Supervised learning part 2  (0) 2023.04.27
Supervised learning part 1  (0) 2023.04.27
What is machine learning?  (0) 2023.04.27

coursera의 Supervised Machine Learning: Regression and Classification 강좌 내용입니다.


즉, 지도 학습 알고리즘은 인풋과 아웃풋 혹은 (x,y)매핑을 예측하는 것을 학습한다.

예로, part1에서는 지도 학습 유형 중 하나인 regression(회귀) 알고리즘을 통해 무한한 숫자중 특정 숫자를 예측하는 것을 배웠다. 또 두번째 유형으로는 classification(분류) 알고리즘이 있다.

 

<classification 예시 : 유방암 검사>

데이터 [종양의 크기, 양성 여부[0/1]

데이터를 토대로 그린 그래프

출력은 0 혹은 1, 즉 양성 혹은 악성으로 나온다. 회귀와 달리 이번에는 두가지로만 결과가 출력된다. 

 

 

그렇기 때문에 위와 같이 그래프를 수정하면 좀 더 결과가 보기 쉬워진다. 암일 경우 종양의 크기가 크다는 걸 알 수 있다.

 

또한 암이 한종류 더 있을 때는 이런 모양의 그래프도 나올 수 있고 종양의 크기는 평균일 때 많이 나온다는 걸 알 수 있다.

 

 


Classification 예제를 통해 output 클래스 및 output 카테고리들이 종종 상호교환적으로 사용된 걸 알 수 있었다.

즉 아웃풋을 나타낼 때 클래스나 카테고리는 같은 것을 의미한다.

 

Classification 알고리즘은 범주(카테고리)를 예측한다. 또 카테고리는숫자일 수도 있으나 숫자일 필요가 없다.

작은 숫자내에서 출력값이 나온다는 점이 회귀와 다르다.


<classification 예시2 : 유방암 검사>

 

이번에는 데이터 세트에 [나이 : 종양 크기]를 가지고 있다.

데이터를 토대로 만든 그래프(o : 양성 종양, x:악성 종양)

위 그래프를 토대로 의사는 종양의 사이즈와 환자의 나이를 기록하여 해당 환자가 암일지 아닐지 예측 하려고 한다.

 

 

그러기 위해서는 저 그래프를 분리시키는 하나의 경계를 나누어야 할 것이다. 따라서 경계를 나눌 학습 알고리즘이 필요하다.

 

또 머신 러닝 문제에서는 종종 더 많은 입력값이 필요하다. 종양의 두께, 세포 모양의 균일성 등...


지도 학습

-입력 x를 출력 y로 맵핑

-주어진 정답을 통해 학습

-regression : 숫자를 예측하며 아웃풋에 무한한 가능성이 있다.

-classification : 카테고리를 예측하며, 아웃풋은 한정되어 있다.

 


Q. Supervised learning is when we give our learning algorithm the right answer y  for each example to learn from.  Which is an example of supervised learning?

1.Spam filtering.

2.Calculating the average age of a group of customers.

'machine_learning > [coursera] Machine learning' 카테고리의 다른 글

Jupyter Notebooks  (0) 2023.04.27
Unsupervised learning part 2  (0) 2023.04.27
Unsupervised learning part 1  (0) 2023.04.27
Supervised learning part 1  (0) 2023.04.27
What is machine learning?  (0) 2023.04.27

oursera의 Supervised Machine Learning: Regression and Classification 강좌 내용입니다.


지도 학습 

지도 학습은  x를 배우는 알고리즘을 사용하여 y라는 값을 나타내려고 할 때 사용한다.

고로 '맞은 정답(값)'을 학습 데이터로 사용하며, x(입력)에 맞는 y(라벨)를 연결지어 가며 기계를 학습시켜

합리적으로 정확한 예측 또는 추측을 가능하게 한다.

 

<예시>

input (X) input (Y) Application(응용 프로그램)
이메일 스팸 여부?(0/1) 스팸 필터링
오디오 문자 입력 음성 인식
영어 스페인어 머신 번역
광고, 유저 정보 클릭 여부?(0/1) 온라인 광고
이미지, 레이더 정보 다른 차의 위치 자가 주행 자동차
핸드폰 이미지 결함 여부?(0/1) 시각 검사(visual inspection)

응용 프로그램을 사용하기 위해 우리는 먼저 예제(x에 대한 올바른 답변 라벨 y)를 통해 훈련을 시킨 모델을 만들어야 한다.

 

 

훈련 후, 예제에 포함돼있지 않던 a라는 새로운 값을 인풋으로 넣고 적절한 y를 낼 수 있는지 확인 해본다.

예시로 '주택 가격 별 집의 크기'를 예측하고 싶다고 해보자. 그걸 위하여 몇 데이터를 수집했다. [집의 크기 : 집의 가격]

그러하여 위와 같은 그래프를 만들었다. 이중 한 친구가 750피트의 집의 가격을 궁금해할 때 어떻게 가격을 알아낼 수 있을까? = 지도 알고리즘을 어떻게 활용할 수 있을까?

데이터 분포를 토대로 직선과 곡선을 그려볼 수 있는데, 그러면 750피트의 집은 저 두 사이에 가격이 형성될 거라고 예측 할 수 있다. 

 

이번 예제에서는 직선/곡선 외에 다른 방법을 선택할 수도 있지만 이 예제에는 직선/곡선이 가장 체계적으로 맞았다.

이렇게 상황에 따라 맞는 알고리즘을 선택해야 한다. 알맞은 알고리즘이 더 알맞은 정답을 제공한다.


 

-이번 과정에서 사용했던 지도 학습의 알고리즘은 Regression(회귀)로 x,y 값을 통해 수많은 수 중에서 특정 숫자를 예측하는 것이다.

 

-그리고 750피트의 집이라는 인풋(x)을 넣어서 가격을 알아내는 지도 학습 문제를 classification이라고 한다ㅏ.

 

'machine_learning > [coursera] Machine learning' 카테고리의 다른 글

Jupyter Notebooks  (0) 2023.04.27
Unsupervised learning part 2  (0) 2023.04.27
Unsupervised learning part 1  (0) 2023.04.27
Supervised learning part 2  (0) 2023.04.27
What is machine learning?  (0) 2023.04.27

+ Recent posts