본문 바로가기
Machine learning

머신러닝 개념

by sseddi 2021. 7. 11.
728x90

머신러닝이란?

애플리케이션을 수정하지 않고도 데이터를 기반으로 패턴을 학습하고 결과를 추론하는 알고리즘 기법

기존의 소프트웨어 코드만으로 해결하기 어려웠던 많은 문제점을 해결 가능

인간의 인지능력만이 해결 가능하다고 생각했던 분야에서 적용하며 발전하고 있음 (데이터 마이닝, 영상인식, 음성인식, 자연어 처리 등에 머신러닝 적용)

 

필요성

복잡한 문제를 데이터 기반으로 패턴을 인지해 해결

 

분류

지도 학습 비지도 학습
명확한 결정값이 주어진 데이터를 학습
분류
회귀
시각/음성 감지/인지
결정값이 주어지지 않는 데이터를 학습
군집화(클러스터링)
자원 축소

단점

- 데이터에 너무 의존적

- 실제 환경 데이터 적용 시 과적합 되기 쉬움

- 데이터만 집어 넣으면 자동으로 최적화된 결과를 도출해 내지 않음

   (특정 경우 개발자 코드보다 정확도가 떨어지기도 함)

- 끊임없이 개선하기 위한 노력이 필요하기 때문에 고급 능력이 필요함

 

특징과 장점

R언어와 비교

R언어 python
통계 전용 프로그램 언어
다양하고 많은 통계 패키지 보유가 장점
개발 언어
쉽고 뒤어난 개발 생산성
많은 라이브러리 지원

python과 machine learning - 뛰어난 확장성, 연계, 호환성

다양한 어플리케이션 개발도 가능하고 연계도 쉬움 - 기존 어플리케이션에 쉽게 스며들 수 있음

유수의 deep learning framework가 python 기반으로 작성 됨 (but, tensorflow 제외 - 성능 때문에 c/c++로 작성)

 

파이썬 머신러닝 생태계를 구성하는 주요 패키지

NumPy  배열/선형대수 패키지

pandas 2차원 데이터 핸들링

Jupyter 대화형 파이썬 툴 (필기하듯이 코드 애플리케이션 수행을 끊어서 할 수 있음)

 

툴 다운로드

anaconda만 다운로드 받으면 Jupyter도 다운됨

Jupyter Notebook

대화형 파이썬 툴

전체 프로그램에서 특정 코드 영역별로 개별 수행을 지원 -  영역별로 코드 이해가 매우 명확해짐

Jupyter을 키면 내 홈 디렉토리가 뜸
Jupyter에서 폴더 생성
rename 하기

rename 한 디렉토리를 누르면 empty라고 뜨는데

여기서 python3를 누르면 

이렇게 코드 작성할 수 있도록 창이 바뀐다.

 

 

보통 code와 markdown만 주로 쓴다고 한다. 

code는 실행을 위한 코드이고, markdown은 설명을 위한 코드이다.

 

shift+enter : run 단축어

코드가 오류가 없으면 1번째 줄 처럼 정상적으로 실행되지만, 오류가 있을 경우 2번째 줄 처럼 발생한 오류의 내용이 함게 뜬다.

한 줄을 없애면 없앤 줄 다음 줄부터 나타난다.(7번째 줄을 삭제한 후 새 줄에다가 코드 작성 시 8번째 줄이 나타남)

 

Markdown시 

 

넘파이 기초 테스트

넘파이와 판다스의 중요성

다양한 데이터의 처리 부분을 담당함

사이킷런이 넘파이 기반에서 작성되어 넘파이를 이해하지 못하면 구현에서 힘들 수 있음

+) 공부방법 : 넘파이와 판다스에 대한 기본 프레임워크와 중요 API만 습득하고, ㅇ리단 코드와 부딪쳐 가면서 모르는 API에 대해서는 인터넷 자료를 통해 습득하기

 

넘파이 ndarray

ndarray : N차원(Dimemsion) 배열(Array) 객체

다양한 연산을 ndarray 기반에서 제공

 

인자로 주로 파이썬 list 또는 ndarray 입력

ndarray 내의 데이터 타입은 그 연산의 같은 데이터 타입만 가능

데이터 타입은 ndarray.dtype으로 확인 가능

타입 변환 시 변경을 원하는 타입을 astype()에 인자로 입력 - 대용량 데이터 사용 시 형변환 자주 사용 (메모리 절약 위해)

 

axis 0 :행

axis 1 : 열

 

형변환 실습

728x90

댓글