반응형

Python 19

[머신러닝] Gradient Descent (with Python)

이번 포스팅에서는 최적화 문제에서 널리 쓰이는 방법 중 하나인 Gradient Descent에 대해 알아봅시다.  Gradient Descent?Gradient Descent는 머신러닝과 최적화 문제에서 널리 사용되는 방법 중 하나로, 주어진 함수의 최소값을 찾기 위해 사용됩니다.  이 방법은 이름 그대로 cost function의 기울기가 낮은 방향으로 반복적으로 이동하며 최소값을 찾아가는 방법입니다. 기본적으로 최소화하고자 하는 목적 함수(cost function) $J(\theta)$와 입력변수 $\theta$, 그리고 목적함수의 기울기인 $\triangledown J(\theta)$를 필요로 합니다.   동작 알고리즘Gradient Descent의 동작 알고리즘은 아래와 같이 이루어집니다. 1. ..

[동역학] 오일러 각(Euler Angle)을 Python으로 구현해보기

이번 포스팅에서는 오일러 각(Euler Angle)을 Python으로 구현해보겠습니다.  오일러 각(Euler Angle) 기본기본적인 내용은 아래 글에서 다룬 바 있습니다. 2020.11.19 - [공학/동역학] - [동역학] 오일러 각(Euler angle) [동역학] 오일러 각(Euler angle)이번 포스팅에서는 오일러 각에 대해 알아보도록 합시다. 오일러 각(Euler angle) 오일러 각은 흔히 오일러 앵글이라고들 많이 부르는데, 3차원 공간에서 강체가 놓인 자세를 표현하기 위해 나타내study2give.tistory.com 다시 한번 간단하게 설명하자면, 3차원 공간에서 강체가 놓인 자세를 표현하기 위해 나타내는 3개의 각도를 말하며, 3차원 공간에서는 각 축방향으로 회전하는 순서에 따라..

공학/동역학 2024.07.23

[공학일반] Resampling

이번 포스팅에서는 Resampling의 개념과 예시에 대해 알아보겠습니다.  Resampling이란?Resampling은 원본 dataset의 sample을 다시 생성하는 것을 말하며, 주로 시계열 데이터에서 시간 간격을 재조정하기 위해 사용됩니다.   Resampling의 유형Resampling은 크게 두가지로 나눌 수 있는데요. 1. DownSampling   데이터의 빈도를 낮추는 방법을 말합니다.   예를 들어 초단위 데이터를 분단위로 변환한다거나,   0.01초 간격의 데이터를 0.1초 간격으로 변환하는 등의 방법이 있습니다. 2. UpSampling   이름에서 알 수 있듯이 위 방법과는 반대로 데이터의 빈도를 높이는 방법입니다.  위 두 방법에 대해 예시로 알아보겠습니다.   DownSamp..

공학/일반 2024.06.20

[Python] str.split() 메서드

이번 포스팅에서는 str class에 있는 split()이라는 문자열 분리 메서드에 대해 알아보겠습니다. str.split() split() 메서드는 str class에서 사용할 수 있는 함수입니다. 호출 시 str.split() 혹은 str class로 생성된 instance.split()로 사용할 수 있습니다. 사용하게 되면 split() 메서드는 대상 문자열을 분리하여 list 형태로 반환합니다. 예를 들어 x = str.split('Hello python') print(x) 의 실행 결과는 아래와 같습니다. 'Hello python'이라는 str을 띄어쓰기를 기준으로 분리하여 item 2개짜리 list로 반환하였습니다. 위와 같이 class로 호출하는 방법 외에 instance로도 호출할 수 있는..

[Python] print() 함수

이번 포스팅에서는 화면에 문자열 혹은 숫자를 출력하는 print 함수에 대해 알아보겠습니다. print()에 대하여 먼저 print 함수가 어떻게 정의되는지 python docs에 나와있는 내용을 살펴봅시다. 주어진 객체(object)를 출력하며, sep, end, file, flush 등이 있다면 무조건 키워드로 입력하여야한다고 설명되어 있네요. sep는 구분자를 말하며, 입력하지 않을 시 기본값은 ' '으로 스페이스바와 같습니다. end는 주어진 객체를 print한 후 입력되는 문자이며, 기본값은 \n으로 enter와 같습니다. print() 를 활용하여 문자열 & 숫자 출력하기 파이썬에서 화면에 문자열 혹은 숫자를 출력하기 위해서는 print() 함수를 사용하면 됩니다. 예를 들어, print("안..

[머신러닝] 파이프라인(Pipeline)

이번 포스팅에서는 파이프라인(Pipeline)에 대해 알아보겠습니다. (출처: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음) 파이프라인(Pipeline) 일반적으로 파이프라인은 생산라인에서 동시에 여러 공정 프로세스를 효율적으로 가능하게 하도록 하는 것을 말합니다. 머신러닝에서도 비슷하게 파이프라인은 모델을 가속, 재사용, 관리 및 배포하는 프로세스를 구현하고 표준화합니다. 파이프라인을 사용하면 데이터 전처리와 모델 학습, 예측까지 한번에 가능하여 코드도 간결해지는 장점이 있습니다. 파이프라인 적용 예제 (Python) 파이프라인 적용 전/후의 코드가 어떻게 바뀌는지 예제를 통해 알아보겠습니다. import pandas as pd import numpy as np from skle..

[기계진동] 조화력(harmonic force)을 받는 감쇠계의 응답

이번 포스팅에서는 조화력을 받는 감쇠계의 응답에 대해 알아보겠습니다. 조화력을 받는 감쇠계의 응답 조화력이 무엇인지는 비감쇠계의 응답 부분에서 설명하였으니 넘어가도록 하고, 바로 시스템의 응답에 대해 알아보겠습니다. 조화력 $F(t) = F_0\cos \omega t$가 가해질 때 질량 $m$의 감쇠계 운동방정식은 아래와 같습니다. $$m\ddot{x} + c\dot{x}+kx = F_0\cos \omega t \tag{1}$$ 식 (1)의 particular solution 또한 조화함수의 형태일 것이므로 해를 아래와 같이 가정합니다. $$x_p (t) = X\cos (\omega t-\phi) \tag{2}$$ 이 때 $X$와 $\phi$는 각각 응답의 진폭과 위상각을 나타냅니다. 가정된 해인 식 (..

공학/기계진동 2021.08.29

[Python] 파일 경로 설정

이번 포스팅에서는 파일 경로 설정에 대해 알아보겠습니다. 경로 설정 파일을 읽고 쓰려면 우선 원하는 경로를 지정할 수 있어야 합니다. 그런데 윈도우, Mac os, 리눅스 등 각 운영체제에서는 경로를 지정할 때 구분하는 기호를 쓰는데 윈도우에선 백슬래시(\)를 사용하지만, Mac os에서는 슬래시(/)를 사용합니다. 따라서 경로를 지정하려면 운영체제에 따라 다르게 처리해주어야 합니다. 이럴 때에 유용하게 쓸 수 있는 함수가 있는데요. 바로 os.path.join() 함수입니다. 함수 안에 경로의 개별 폴더 이름을 지정하면 해당 경로를 각 운영체제에 맞는 구분 기호를 사용하여 생성해줍니다. import os print(os.path.join('user','Desktop','Python')) 저는 맥북을 사..

[Python] 문자열 메소드

문자열을 사용할 때 쓸만한 메소드를 소개할까 합니다. 문자열 메소드 upper(), lower() 이 메소드들은 각각 알파벳을 대/소문자로 변환하는 메소드입니다. upper()는 대문자로, lower()는 소문자로 변환하여 반환해줍니다. 예를 들면 A = 'Hello, I am minsoo.' B = A.upper() C = A.lower() print(B) print(C) 출력 결과를 보시면 모두 대문자 혹은 소문자로 변환된 것을 확인할 수 있습니다. 이 메소드는 알파벳이 아닌 문자엔 사용할 수 없습니다. startswith(), endswith() 각 메소드는 문자열 값이 각각 메소드에 전달된 문자열로 시작되거나 끝나면 True, 아니면 False를 반환하는 메소드입니다. A = 'Hello, I a..

[Python] 문자열 입력 방법

다양한 문자열 입력 방법에 대해 알아봅시다. 따옴표 - 홑따옴표, 겹따옴표, 세겹따옴표 파이썬에서 문자열을 입력할 때엔 홑따옴표 안에 입력합니다. 'Hello, world.'와 같은 형식으로 말이죠. 하지만 문자열 안에 홑따옴표를 사용해야할 경우엔 어떨까요? A = 'Hello, I'm minsoo.' 이 경우 아래와 같은 에러가 발생합니다. I 다음 홑따옴표로 인해 문자열이 끝난 것으로 간주하여 m minsoo.'는 잘못된 코드로 받아들이기 때문이죠. 이 경우 겹따옴표를 사용하면 해결됩니다. A = "Hello, I'm minsoo." print(A) 그러면 홑따옴표로 이루어진 문자열 안에선 홑따옴표를 쓸 수 없을까요? 역슬래시로 이루어진 이스케이프 문자를 쓰면 가능합니다! A = 'Hello, I\'..

반응형