OneBook(Python & Deep Learning)
  • 한곳에서 끝내는 파이썬 & 머신러닝 & 딥러닝
  • 문서 작업을 시작하며
  • 1. 인공지능(Artificial Intelligence) 시대
    • 1.1. 인공지능이란 도대체 무엇인가?
    • 1.2. 4차 산업혁명
    • 1.3. 인공지능의 역사
    • 1.4. 인공지능 > 머신러닝 > 딥러닝
    • 1.5. 머신러닝
    • 1.6. 머신러닝 알고리즘
      • 1.6.1. 지도 학습 (Supervised Learning)
      • 1.6.2. 비지도 학습 (Unsupervised learning)
      • 1.6.3. 강화 학습(Reinforcement Learning)
    • 1.7. 인공신경망(ANN)
    • 1.8. 딥러닝
  • 2. 기본 상식
    • 2.1. 기본 용어의 이해
      • 2.1.1. CPU와 GPU의 차이
      • 2.1.2. 오픈소스(Open Source)
      • 2.1.3. 깃허브(GitHub)
      • 2.1.4. 위키 Wiki
      • 2.1.5. 아나콘다(Anaconda)
      • 2.1.6. 활성화 함수
      • 2.1.5. 딥러닝 프레임워크 소개
    • 2.2. 텐서플로(Tensorflow)
    • 2.3. 케라스(Keras)
    • 2.4. 파이토치(PyTorch)
    • 2.5. 학습에 필요한 중요한 도구와 라이브러리들
      • 2.5.1. 주피터 노트북(Jupyter Notebook)
      • 2.5.2. 파이참(PyCharm)
      • 2.5.3. 스파이더(Spyder)
      • 2.5.4. 넘파이(NumPy)
      • 2.5.5. 싸이파이(SciPy)
      • 2.5.6. Matplotlib
      • 2.5.7. 판다스(Pandas)
      • 2.5.8. 장고(Django)
      • 2.5.9. 파이큐티(pyQT)
      • 2.5.10. 싸이킷런(Scikit-learn)(Sklearn)
      • 2.5.11. CUDA & cuDNN
      • 2.5.12. 파이썬 표준 내장 라이브러리
    • 2.6. AI공부에 필요한 기본지식 3가지
      • 2.6.1. 수학
      • 2.6.2. 프로그래밍 기술
      • 2.6.3. AI의 적용 대상 산업에 대한 지식
  • 3. 개발 환경설정
    • 3.1. 윈도우 환경에서 설치하기
      • 3.1.1. 아나콘다 설치 (파이썬 설치)
        • 1) 아나콘다 패키지 업데이트
        • 2) conda에서 파이썬 가상 환경 (virtual environments) 생성하기
        • 3) NVIDIA GPU 환경 설정하기
      • 3.1.2. 텐서플로 설치
      • 3.1.3. 케라스 설치
      • 3.1.4. Jupyter Notebook 설치
      • 3.1.5. Visual Studio Code 설치
      • 3.1.6. 파이참 설치
        • 1) 파이참 가상환경 설정
        • 2) 파이참 환경 설정
        • 3) 설치된 라이브러리들의 버전 확인 하기
    • 3.2. 리눅스 환경에서 설치하기
      • 3.2.1. 아나콘다 설치(파이썬 설치)
      • 3.2.2. 텐서플로 설치
      • 3.2.3. 케라스 설치
      • 3.2.4. 장고 설치
      • 3.2.5. 파이참(PyCharm) 설치
        • 1) 파이참 가상환경 설정
  • 4. 파이썬 기초 학습
    • 4.1. 파이썬(Python)
    • 4.2. 파이썬의 특징
    • 4.3. 파이썬 기본 문법
      • 4.3.1. 대화형과 스크립트 모드 프로그래밍
      • 4.3.2. 모듈의 사용(import)
      • 4.3.3. 파이썬 식별자(Identifiers)
      • 4.3.4. 예약어(Reserved Words)
      • 4.3.5. 행(Lines)과 들여쓰기(Indentation)
      • 4.3.6. 문자열 표시
      • 4.3.7. 주석
      • 4.3.8. 파이썬 변수(Variables)
    • 4.4. 자료형과 연산자
      • 4.4.1. 자료형
      • 4.4.2. 파이썬 연산자
    • 4.5. 조건문과 반복문
      • 4.5.1. 조건문
      • 4.5.2. 반복문
    • 4.6. 함수
      • 4.6.1. 함수의 종류
    • 4.7. 모듈(Modules)
      • 4.7.1. 모듈의 참조 위치
      • 4.7.2. 네임스페이스(Namespace)와 범위(Scoping)
      • 4.7.3. dir( ) 함수
      • 4.7.4. 패키지(Packages)
      • 4.7.5. 기본 내장 모듈
    • 4.8. 숫자형 활용
      • 4.8.1. 실습: 계산기 만들기
    • 4.9. 문자열(Strings) 활용
      • 4.9.1. Unicode 한글의 사용
      • 4.9.2. 이스케이프 문자
      • 4.9.3. 문자열 연산자
      • 4.9.4. 문자열 포맷 연산자
      • 4.9.5. 내장 문자열 함수
    • 4.10. 시퀀스(Sequence) 자료형 활용
      • 4.10.1. 리스트(Lists)
      • 4.10.2. 튜플(Tuple)
      • 4.10.3. 딕셔너리(Dictionary)
    • 4.11 Class
    • 4.12. Date & Time
    • 4.13. 파이썬 에러처리
  • 5. 기초수학
  • 6. 머신러닝을 위한 파이썬
  • 7. 텐서플로 2.x
  • 8. 딥러닝을 이용한 자연어 처리 입문
  • 9. 파이토치로 시작하는 딥 러닝 입문
  • 9.6 6. Pytorch lightning
  • A1. 필수 학습 라이브러리들
    • 4.1 NumPy
      • 4.1.1. Basic Operations
      • 4.1.2. Indexing, Slicing 그리고 Iterating
      • 3.13.3. Shape Manipulation
    • 4.2 Matplotlib
    • 4.3 SciPy
      • 4.3.1. Interpolation
      • 4.3.2. Optimization
      • 4.3.3. Fast Fourier transforms: scipy.fftpack
    • 4.4 Pandas
      • 4.4.1 Pandas 자료구조
      • 4.4.2 Pandas 활용하기
  • A2. 머신러닝 & 딥러닝
    • 5.1. 머신러닝 개념 소개
      • 5.1.1. 경사하강법(Gradient Descent )
      • 5.1.2. 분류 (Classification)
      • 5.1.3. MNIST Dataset 소개
    • 5.2. 딥러닝 개념 소개
      • 5.2.1. 퍼셉트론
      • 5.2.2. 인공 신경망
      • 5.2.3. 대표적인 딥러닝 모델
    • 5.3. Tensorflow를 사용한 학습
      • 5.3.1. TensorFlow 기본 메커니즘
      • 5.3.2. Tensorflow Types
      • 5.3.3. 기본 동작 실습
      • 5.3.4. 선형 회귀
      • 5.3.5 로지스틱 회귀
    • 5.4. Keras를 사용한 학습
      • 5.4.1. Keras로 분석한 선형 회귀
      • 5.4.2. CNN(Convolutional Neural Network)
      • 5.4.3. Fashion MNIST with Keras
    • 5.5. 웹 크롤링
      • 5.5.1. requests와 BeautifulSoup으로 웹 크롤러 만들기
Powered by GitBook
On this page

Was this helpful?

  1. A1. 필수 학습 라이브러리들
  2. 4.3 SciPy

4.3.1. Interpolation

보간법(interpolation)이란 통계적 혹은 실험적으로 구해진 데이터들(xi)로부터, 주어진 데이터를 만족하는 근사 함수(f(x))를 구하고, 이 식을 이용하여 주어진 변수에 대한 함수 값을 구하는 일련의 과정을 의미합니다. 예를 들어, (0, 0), (1, 10), (2, 20)이 주어졌을 때, 이들에 대한 근사 함수를 f(x) = 10x로 구하고, 1.5에 대한 함수 값으로 15를 구하는 것입니다.

사인(sine) 함수에 가까운 실험 데이터를 생각해 보겠습니다. 다음 예제는 NumPy, Matplotlib, SciPy를 종합적으로 사용합니다.

 import numpy as np
 from scipy.interpolate import interp1d
 from matplotlib import pyplot as plt

 # Cosine 함수를 0부터 10pi까지 20개 만든다.
 x = np.linspace(0,10*np.pi, 20)
 y = np.cos(x)

 #interoperate 함수로 보간법을 적용하여 linear(선형보정) quadratic(부드러운 보정) 두가지 방법으로 만든다
 fl = interp1d(x,y,kind = 'linear')
 fq = interp1d(x,y,kind = 'quadratic')

 xint = np.linspace(x.min(), x.max(), 1000)
 yintl = fl(xint)
 yintq = fq(xint)

 # Plot the data and the interpolation
 plt.plot(xint, yintl, color = 'green', linewidth=2)
 plt.plot(xint, yintq, color = 'red', linewidth=2)
 plt.legend(['Linear','Quadratic'])
 plt.plot(x,y,'o')    #값의 위치를 점으로 표현
 plt.ylim(-2,2)

 plt.title('Interoperate')
 plt.show()

6행의 코드는 시작점 0부터 10*np.pi 까지 균등하게 나뉘어진 20개 값을 만들어 냅니다. 즉 다음과 같은 값이 만들어 집니다.

[ 0. 1.65346982 3.30693964 4.96040945 6.61387927 8.26734909 9.92081891 11.57428872 13.22775854 14.88122836 16.53469818 18.18816799 19.84163781 21.49510763 23.14857745 24.80204727 26.45551708 28.1089869 29.76245672 31.41592654]

7행의 cosine 함수를 실행 하면 다음과 같은 값이 구해 집니다.

[ 1. -0.08257935 -0.9863613 0.24548549 0.94581724 -0.40169542 -0.87947375 0.54694816 0.78914051 -0.67728157 -0.67728157 0.78914051 0.54694816 -0.87947375 -0.40169542 0.94581724 0.24548549 -0.9863613 -0.08257935 1. ]

10행과 11행은 SciPy interpolation(보간법)을 사용하는 부분입니다. scipy.interpolate의 interp1d 클래스는 선형 보간법을 사용하여 주어진 데이터로 정의된 도메인 내 어디에서나 평가할 수있는 고정된 데이터 포인트를 기반으로 함수를 만드는 편리한 방법입니다. 이 클래스의 인스턴스는 데이터를 구성하는 1-d 벡터를 전달하여 만들어집니다. interp1d 에서 지원하는 보간법의 종류는 ‘linear’, ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘previous’, ‘next’, where ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’ 등이 있습니다.

13행, 14행은 xint 를 x의 최소값 부터 x의 최대값까지 1000개로 세분화 하고 linear, quadratic 보간법으로 yint 값을 구하는 부분입니다.

18행 부터는 matplotlib를 사용하여 플롯하는 부분입니다.

위의 코드를 실행하면 다음과 같은 그래프가 출력 됩니다.

주어진 점들을 가지고 붉은색의 그래프를 그렸습니다. X축의 어떠한 위치에서도 Y값을 예상 할 수 있습니다.

Previous4.3 SciPyNext4.3.2. Optimization

Last updated 6 years ago

Was this helpful?