혼자 공부하는 머신러닝+딥러닝 chapter 01

2023. 7. 13. 22:00·공부기록/머신러닝

chapter 01. 나의 첫 머신러닝

인공지능 : 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술

인공일반지능, 강인공지능 : 사람과 구분하기 어려운 지능을 가진 컴퓨터 시스템

약인공지능 : 우리가 현실에서 마주하고 있는 인공지능(특정 분야에서 사람의 일을 도와주는)

머신러닝

머신러닝 : 규칙을 일일이 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야

대표적인 라이브러리 → 사이킷런

딥러닝 : 머신러닝 알고리즘 중에 인공 신경망을 기반으로 한 방법들

  • 대표적인 딥러닝 라이브러리 : 텐서플로(TensorFlow), 파이토치(PyTorch)

제목1 #제목1

제목2 ##제목2 

제목3 ### 제목3

제목4 #### 제목4

제목5 ##### 제목5

굵게 쓰기 **굵게쓰기

기울임 꼴 *기울임 꼴

기울임 꼴 _기울임 꼴

취소선  ~~취소선~~

print("Hello world") ` `

들여쓰기 >들여쓰기

  • 글머리 기호 * 글머리기호
  • 글머리 기호 - 글머리 기호

 

1-3 마켓과 머신러닝

프로그램 : 누군가 정해준 기준대로 일을 함

머신러닝 : 누구도 알려주지 않는 기준을 찾아서 일을 함

  • 이진 분류

머신러닝에서 여러 개의 종류(혹은 클래스(class)라고 부릅니다) 중 하나를 구별해 내는 문제를 분류(classification)이라고 부른다. 2개의 클래스 중 하나를 고르는 문제를 이진 분류(binary classification) 이라고 한다.

생선 분류 문제

도미 데이터 준비하기

 
# bream_length : 생선의 길이
# bream_weight : 생선의 무게
import matplotlib.pyplot as plt # 파이썬에서 그림을 그리는 대표적인 라이브러리(matplotlib 맷플롯립) plt.scatter(bream_length, bream_weight) #scatter() : 산점도 그리는 함수
plt.xlabel('length') # x축은 길이
plt.ylabel('weight') # y축은 무게
plt.show()

빙어 데이터 준비하기

 
# smelt_length  : 빙어의 길이
# smelt_weight : 빙어의 무게

scatter 함수를 두 번 연속으로 호출하면 2개의 산점도가 한 그래프에 그려진다

 
plt.scatter(bream_length, bream_weight)
plt.scatter(smelt_length, smelt_weight)
plt.xlabel('length')
plt.ylabel('weight')
plt.show()

첫 번째 머신러닝 프로그램 _ k-최근접 이웃(k-Nearest Neighbors)

 
# 간단하게 두 리스트를 하나로 합쳤다 (연산자 오버로딩)
length = bream_length+smelt_length
weight = bream_weight+smelt_weight
 
# zip() : 나열된 리스트 각각에서 하나씩 원소를 꺼내 반환
fish_data = [[l, w] for l, w in zip(length, weight)] print(fish_data)
 
 
# 정답 준비
fish_target = [1]*35 + [0]*14 print(fish_target)
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
 
from sklearn.neighbors import KNeighborsClassifier
 
kn = KNeighborsClassifier()
 
# 모델에서 데이터를 전달하여 규칙을 학습하는 과정 : 훈련 // 사이킷런에서는 fit() 메서드가 그 역할을 함
kn.fit(fish_data, fish_target)
 

 

# 사이킷런에서 모델을 평가하는 메서드
kn.score(fish_data, fish_target)
 
1.0

k-최근접 이웃 알고리즘

 
plt.scatter(bream_length, bream_weight)
plt.scatter(smelt_length, smelt_weight)
plt.scatter(30, 600, marker='^')
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
 

 
kn.predict([[30, 600]]) # predict() : 새로운 데이터의 정답을 예측
 
array([1])
 
print(kn._fit_X)
 
 
print(kn._y)
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
 0 0 0 0 0 0 0 0 0 0 0 0]
 
kn49 = KNeighborsClassifier(n_neighbors=49) # 참고 데이터를 49개로 한 kn49 모델
 
kn49.fit(fish_data, fish_target)
kn49.score(fish_data, fish_target)
print(35/49) # 가까운 데이터 49개를 사용하는 k-최근접 이웃 모델을 적용하였는데 49개 중에 35개가 도미이므로 어떤 데이터를 넣어도 다 도미로 예측 -> 그래서 정확도가 35/49
 

확인 문제

kn = KNeighborsClassifier()
kn.fit(fish_data, fish_target)

for n in range(5, 50):
    # 최근접 이웃 개수 설정
    kn.n_neighbors = n
    # 점수 계산
    score = kn.score(fish_data, fish_target)
    # 100% 정확도에 미치지 못하는 이웃 개수 출력
    if score < 1:
        print(n, score)
        break
https://github.com/minju00/ml/blob/94f0ef3d66d43d55625aa88ebf963f27d0c296cb/ml_alone_Chapter_1.ipynb

 

반응형

'공부기록 > 머신러닝' 카테고리의 다른 글

혼자 공부하는 머신러닝+딥러닝 chapter 02  (3) 2023.07.14
'공부기록/머신러닝' 카테고리의 다른 글
  • 혼자 공부하는 머신러닝+딥러닝 chapter 02
쇼파죠하
쇼파죠하
소프트웨어학과 코린이 성장기
  • 쇼파죠하
    코린이의 성장기
    쇼파죠하
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • TIL
        • 한달 기록
      • 신한투자증권 N
        • 프로 디지털 아카데미 N
      • 공부기록 N
        • AWS
        • 트러블슈팅 N
        • 머신러닝
        • 알고리즘
        • 자료구조알고리즘
        • CS
        • 파이썬
      • 코린이의 성장기
        • 코린이의 백준 도전기
        • 코린이의 성장기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 프디아
    • AWS
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    react
    백준
    네트워크
    aws 구조와 서비스
    알고리즘
    신한투자증권
    K디지털트레이닝
    프로 디지털 아카데미
    JavaScript
    LG Aimers
    파이썬문법
    코린이
    kdt교육
    영리한 프로그래밍을 위한 알고리즘
    전공지식노트
    AWS
    부트캠프
    프디아
    프로디지털아카데미
    클라우드
    알파코캠퍼스
    9월기록
    CS
    파이썬
    파이썬알고리즘인터뷰
    Computer Networking: a top down approach
    AI 전문과과정
    프로디지털아카데미6기
    c언어
    알파코
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
쇼파죠하
혼자 공부하는 머신러닝+딥러닝 chapter 01
상단으로

티스토리툴바