전체 글
-
NumpyBoostCourse 2023. 1. 5. 01:06
오늘은 BoostCourse에서 Numpy에 대해 배웠다. From TEAMLAB director 최성철 Corsera에서 Andrew Ng의 ML을 수강할 때 배운 내용이기에 비교적 쉽게 들을 수 있었다. 앞으로 수학적인 강의가 여럿 남았는데, 기초 확률 및 통계는 내 주전공인 심리학 수업 필수 과정이고, 미적분학은 Khanacademy.com에서, 선형대수는 Math Mart 황한순 선생님 동영상에서 배웠기에 어렵지 않게 들을 수 있을 것 같다. Numpy는 Numerical Python의 약자라고 한다. Numpy의 장점은 일반 List에 비해 빠르고 메모리 효율적이라는 것이다. 1. numpy.array(object, dtype=None, *, copy=True, order='K', subok=F..
-
Exception/File/Log HandlingBoostCourse 2023. 1. 2. 23:55
Exception Handling try: 예외 발생 가능 코드 except : 예외 발생 시 대응하는 코드 예시(try ~ except) for i in range(10): try: print(10/i) except ZeroDivisionError: print("Not divided by 0") except Exception as e: print(e) 예시 2 (try ~ except ~ else) for i in range(10): try: result = 10 // i except ZeroDivisionError: print("Not divided by 0") else: print(result) 예시 3 (try ~ except ~ finally) for i in range(10): try: pri..
-
Module and ProjectBoostCourse 2023. 1. 2. 14:35
같은 directory 폴더 안에 있는 .py 파일을 import로 불러서 그 안의 코드를 사용할 수 있다. 1. 별칭(Alias) 설정하기 ex. import fah_converter as fah 2. 모듈에서 특정 함수 또는 클래스만 호출하기 ex. from fah_converter import covert_c_to_f 3. 모듈에서 모든 함수 또는 클래스를 호출하기 ex. from fah_converter import * Built in Moudle random time urllib.request if __name__ == "__main__" In short: It allows you to execute code when the file runs as a script but not when it's..
-
Python Object Oriented ProgrammingBoostCourse 2022. 12. 31. 01:53
오늘은 BoostCourse에서 객체 지향 프로그래밍에 대해 배웠다. From TEAMLAB director 최성철 특정 기능을 가지는 프로그램을 만들기 위해서, 시작부터 끝까지 순서대로 모든 기능을 구현하는 것은 비효율적일 수 있다. 이때, 효율적으로 기능을 구현하기 위해서 OOP를 사용한다. 먼저 OOP는 설계도에 해당하는 클래스와, 구현체인 인스턴스로 나눌 수 있다. 설계도: 클래스(class), 붕어빵의 틀 구현체: 인스턴스(instance), 붕어빵 class SoccerPlayer(object): def __init__(self, name, position, back_number): self.name = name self.position = position self.back_number = b..
-
데이터 구조(Data Structure)BoostCourse 2022. 12. 29. 18:45
기본 데이터 구조로는 다음과 같은 구조가 있다. 1. 스택과 큐(stack & queue with list) 2. 튜플과 집합(tuple & set) 3. 사전(dictionary) 4. Collection 모듈 스택: Last In First Out (LIFO) push - list.append(sth) pop - list.pop() ex) Delivery System 큐: First In First Out (FIFO) enqueue - list.append(sth) dequeue - list.pop(0) 튜플: Unchageable ex) 학번, 이름, 우편번호 등 ** t = (1,) - 값이 하나일 경우 , 필요 집합: 중복 불허, 순서 없음 s.add() s.remove() - 지우려는 elem..
-
정렬백준 2022. 7. 27. 17:30
파이썬에서 제공하는 정렬함수로는 sort, sorted가 있다. list.sort() list2 = sorted(list) sort(key=len, reverse=True) #2 input을 사용할 경우 시간 및 메모리 초과가 나와 sys.stdin.readline을 활용하였다. import sys size = int(input()) l = list() for i in range(size): k = int(sys.stdin.readline()) l.append(k) l2 = sorted(l) for i in l2: print(i) #3 카운팅 정렬을 활용한다. size = int(input()) arr = [] for i in range(size): arr.append(int(input())) count..
-
GMM (Gaussian Mixture Models)기계학습이론과실습 2022. 6. 14. 08:03
GMM은 여러 개의 다변량 정규분포를 이용해서 데이터가 생성되었다고 가정한다. 여기서 분포의 개수 K는 사용자에 의해 설정되는 hyper-parameter이며 분포의 개수가 곧 군집의 개수이다. 독립변수의 수 = M, 찾고자 하는 군집의 수 = K라고 가정할 경우, 특정 관측치의 확률은 다음과 같다. 파이값은 mixing coefficient(weight)라고도 불리며 관측치 x_i가 k번째 정규분포를 이용해서 생성되었을 확률을 나타낸다. 이때, mixing coefficient를 나타내기 위해서 z라고 하는 잠재변수를 사용해서 표현한다. z_i는 i번째 관측치가 생성될 때 사용된 분포를 나타내는 변수이다. 다변량 정규분포의 μ = (μ_1, μ_2, ..., μ_M)이며 Σ는 M개의 변수들에 대한 공분..
-
SVM (Support Vector Machines)기계학습이론과실습 2022. 5. 30. 12:08
하이퍼플레인 Label에 따라 벡터들을 구분하기 위한 면(선) n 차원 공간에 대한 하이퍼플레인: b0 + b1x1 + ... + bnxn = 0 서포트 벡터 벡터들을 구분하는 하이퍼플레인과 가장 가까이 있는 벡터 마진(margin) 하이퍼플레인과 서포트 벡터 사이의 거리 * 목표: margin을 최대화하는 b0, b1 ... bn 값을 찾는 것 1. 점과 선 사이의 거리를 찾는 공식을 알아보자 * 법선 벡터(normal vector)란 한 평면이나 직선에 대해 수직인 벡터를 의미한다. * ax + by = c의 법선 벡터 N은 (a, b) ** 법선 벡터를 활용하여 점(x0, y0)과 직선(ax + by + c = 0)의 거리를 구하면 absolute(ax0 + by0 + c) / root(a^2 + ..