전체 글
-
머신러닝 - 로지스틱 회귀 모델 (Logistic Regression)머신러닝,딥러닝 2023. 3. 17. 22:47
머신러닝을 배우는 것들 중에서 가장 첫번째로 배우는 것이 linear regression 즉 선형회귀라면 두번째로 배우는것은 바로 로지스틱 회귀 모델이다. 로지스틱 (logistic) 은 논리에 관련된 결정을 내려주는 모델이라고 생각하면 편하다 입력값을 받아서 이 값이 0이냐 1이냐 를 '분류'하는 방법이라고 생각하면 된다. 사실 0 혹은 1이 아니어도 다른 값으로 만들수 있지만 지금 처음 배우는 입장에서 여러가지 값 중에서 고르는것은 매우 어려운 일이기 때문에 지금 이 글에서는 두가지 중에 고르는 것을 서술한다. 앞의 선형회귀 모델은 loss function , 손실함수에대해서 먼저 서술하였다면 logistic regression은 출력 함수 부터 알아야한다. (1) Sigmoid 함수 이 함수는 보기..
-
머신러닝 - 선형 회귀 (Linear Regression)머신러닝,딥러닝 2023. 3. 10. 20:34
머신러닝에서 가장 간단하고 쉽게 예측할수 있는 방법 중에 하나가 선형회귀 방법이다. 변수가 한 개 있고 결과값이 선형적인 관계 즉 1차 함수를 이룬다고 판단되는 데이터에 한해서 사용한다. 어떻게 보면 간단하지만 아주 강력한 머신러닝 방법중에 하나이다. 먼서 선형회귀를 하려면 loss function 즉 손실함수에 대해서 알아야한다. 가장 쉽게 사용되는 것은 RMSE(Root Mean Square Error) 평균 제곱 오차이다. 말이 어렵지만 사실은 x 값을 예측 함수에 넣었을때 그 값과 원래 계측값과의 거리를 이야기한다. root와 square 을 사용하는 이유는 음수와 양수를 처리하기 위한 방편이 뿐이며 RMSE는 예측 값과 실측값의 거리를 측정하는 것에 불과하다. 여기서는 많은 데이터를 다루기 때문..
-
자료구조(1) - 시간복잡도, 배열, linked listcomputer science 2023. 2. 25. 23:19
자료 구조(Data structure)는 데이터를 저장하고 관리하는 방식이다. 학부과정에서 배우는 과정중에 가장 어렵다고 정평이 나있는 과목이기도 하다. 내가 생각하기에는 컴퓨터의 사고방식을 이해하는 과정에 있어서 사람들이 어려워 하지 않나 생각한다. 자료구조는 데이터를 체계적으로 저장하여 메모리를 효율적으로 사용할 수 있게 하고, 안정적으로 데이터를 처리할수 있도록 도와준다. 자료구조와 알고리즘은 긴밀한 관계를 가지며 알고리즘에 각각에 필요한 자료구조가 존재할 수 있다. (1) 시간 복잡도 컴퓨터가 우리가 작성한 프로그램이 시작되고 모든 코드를 처리하는데 걸리는 시간을 runtime(실행시간)이라고 한다. 실행 시간에 영향을 주는 요소는 크게 2가지 요소가 있다. 한줄의 코드당 걸리는 시간 ex) in..
-
내 코드 이쁘게 관리하기(git) (1)코드 관리 2023. 2. 3. 19:33
git 과 github는 나의 코드를 깔끔하게 관리하게 위함 뿐만 아니라 다른 사람들과 코드를 공유하고 , 프로젝트를 같이 진행하기 위해서 필수적으로 필요한 도구이다. git을 배우는데는 다음과 같은 목표가 있다. 코드 관리를 위한 git의 정확한 사용법을 이해한다. 코드 관리를 위한 git의 정확한 사용법을 이해한다. git의 저장소 개념을 이해하고, 원격 저장소 서비스의 차이를 인식한다. git을 사용하면서 발생하는 다양한 상황을 해결할 수 있다. commit의 보편적인 작성법을 이해하고 이를 활용하여 commit을 작성할 수 있다. git의 branch model을 활용해 능숙하게 코드관리할 수 있다. git의 다양한 branch 전략을 이해하고 널리 사용되는 github flow 전략을 활용하여 ..
-
인터넷 세상을 기어다니기(crawling) (1)크롤링 2023. 1. 26. 17:50
인터넷이 세상을 점령한 이후로 웹 세상에는 굉장히 많은 정보들이 떠다니고 있다. 이러한 데이터를 가져오기 위한 방법이 crawling 이라고 한다. 기초 : 눈에 보이는 정보를 수집한다. 간단하게 request 모듈을 사용하여서 보이는 정보를 가져올수 있다. 중급 : 눈에 안보이는 정보를 수집한다. 위의 방법과 기타 네트워크로 전달되는 정보를 가져온다. 고급 : 로그인 정보를 넣어서 다른 secure한 정보를 수집한다. selenium 이라는 모듈을 사용해서 동적으로 내가 직접 브라우징 하듯이 정보를 가져오는 방법 1. 크롤링을 위한 모듈 request 1) 웹페이지에 접속 : requests 2) 내가 원하는 데이터를 찾기 : beautifulsoup (html, css, js) 3) 찾은 데이터를 저..
-
강력한 수학적 행렬 계산 모듈 numpy (1) import, 생성파이썬 2023. 1. 5. 17:50
3rd party 모듈은 기초적으로 깔려있는 모듈이 아니라 사용자가 직접 다운로드 받아야 하는 다른 파이썬 사용자가 만들어 낸 모듈이다. 앞의 글에서 만든 클래스 파일을 배포한 것이라고 생각하면 편하다. 그중 numpy와 pandas는 데이터를 다루는데 아주 강력한 모듈로 흔히 많이들 사용한다. numpy는 파이썬에서 행렬을 계산하기위해서 제작되어진 모델로 선형대수와 관련된 메서드들이 많다. 기본적으로 대학교 1학년 수준의 선형대수학의 선행지식을 약간은 요구하는 부분이 있다. numpy는 흔하게 사용자들 사이에서 np 로 줄여서 import 하는 경우가 많은데 이는 사용자의 편의를 위해서도 있지만 사실 코드의 공유성과 가독성을 위해서 개발자들의 약속된 약어라고 한다. 여담이지만 numpy의 원형은 mat..
-
객체지향프로그래밍의 꽃 클래스(Class)파이썬 2023. 1. 4. 01:38
파이썬은 그 자체로 객체지향 언어이자 객체지향 프로그래밍을 지향하는 언어이다. 절차 지향적 언어인 c가 객체지향을 받아들여서 c++가 된것 처럼 객체지향은 현실세계의 무언가를 디지털 세계로 가져오는 강력한 무기이다. 파이썬에서 클래스는 아주 활용성이 높다 우리가 알고 있고 흔하게 사용하는 list, dictionary,tuple 등등 기초적인 데이터 형식도 클래스로 정의된다. 크게는 모듈부터 작게는 객체를 정의하는것까지 아주 많은 방식으로 활용된다. (1) 클래스 정의하기 기본적으로 클래스를 정의하는것은 어렵지 않다. 원하는 클래스 이름명 앞에 class를 써주기만 하면 이미 클래스를 만든 것과 다름없다. 기본적으로 클래스는 변수, 함수를 포함하고 있으며 파이썬에선 모든 변수와 함수는 public한 변수..
-
함수와 매개변수(일반 매개변수, 가변 매개변수)파이썬 2022. 12. 30. 18:17
함수의 사용은 객체지향 프로그래밍의 한 기법인 추상화에 매우 중요한 부분이다. 사용자 입장에서 내부를 바라볼수 없고 입력과 출력만이 존재한다. 매개변수에 초깃값을 지정하는것에 있어서 앞에 한개를 지정했다면 그 뒤에 쭉 다 지정해주어야 한다. 만약에 순서를 맞추지 않았다면 함수는 제대로 작동하지 않는다. 일반 매개변수는 자리와 이름에 맞게 매개변수에 삽입된다. 가변 매개변수는 나머지를 튜플로 묶어서 받는다. 함수당 한개당 맨 마지막에 한개만 올 수 있다. 가변 매개변수의 활용은 특별하게 매개변수에 담긴 변수에 따라서 처리를 달리할떄 사용한다.