Django | 장고 마이그레이션(migrate, makemigrations)
·
Django
장고 프로젝트를 처음 생성하면 디렉터리(dir)에는 다음과 같은 파일과 폴더가 존재할 것이다. 프로젝트가 잘 생성되었는지 확인하기 위해 서버를 실행하면 다음과 같은 오류 메시지가 나타난다. python manage.py runserver 이 오류 메시지는 아직 18개의 마이그레이션이 있다는 의미이다. 장고에서 마이그레이션(migration)이란 데이터베이스에 적용시켜야 하는 변화에 대한 기록이다. ex) 댓글 기능이 없던 블로그에 댓글 작성 기능을 추가했을 때, 데이터 베이스에 댓글을 저장하기 위한 공간인 테이블이 필요하다. 이를 데이터베이스에 반영해야 서버를 실행했을 때 웹사이트에 추가한 댓글 기능을 제대로 사용할 수 있다. 장고는 새 프로젝트를 생성할 때 데이터베이스에 기본적으로 필요한 테이블을 미리..
프로그래머스 | 피보나치 수 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 import sys sys.setrecursionlimit(10**6) def fibo(x): if x == 0: return 0 elif x == 1: return 1 else: return fibo(x-1) + fibo(x-2) def solution(n): return fibo(n) % 1234567 문제 이름을 보자마자 피보나치 함수 정도는 쉽게 구현할 수 있지!라고 생각했지만 결과는 처참했다. 런타임 에러도 아닌 시간초과를 맞닥뜨려 너무나 당황스러웠다. 어떻게 해결해야 할지 하나도 ..
프로그래머스 | 숫자의 표현 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n): answer = 0 # 연속된 자연수로 n을 표현하는 방법의 수 for i in range(1, n+1): hap = 0 # hap이 n보다 크거나 같아질 때까지 i부터 순차적으로 더함 while hap < n: hap += i i += 1 if hap == n: # 만약 hap이 n과 같으면 연속된 자연수로 나타낼 수 있으므로 방법 +1 answer += 1 return answer 자연수 n을 연속된 자연수로 표현할 수 있는 가짓수를 구하는 문제이다. 예를 들어, n=1..
프로그래머스 | 최솟값 만들기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(A,B): answer = 0 for i in range(len(A)): a = A.pop(A.index(min(A))) b = B.pop(B.index(max(B))) answer += a * b return answer 두 배열에서 뽑은 각각의 원소의 곱의 누적합이 최소가 되는 경우의 값을 구해야 하는 문제이다. 문제의 예시를 보며 한쪽 리스트에서는 최솟값을 순서대로 고르고, 다른 쪽 리스트에서는 최댓값을 순서대로 고르는 경우가 정답이라고 생각하게 되었다. 그래서 ..
python | capitalize(), title() 함수 비교
·
TIL/python
파이썬 문자열 함수 중 대문자로 바꾸는 함수인 upper()와 capitalize(), title()을 예시를 통해 비교해보고자 한다. 문자열 s1='abc'가 있을 때 각 함수를 적용한 결과는 다음과 같다. upper() 함수는 모든 문자열을 대문자로 바꾸고, capitalize()와 title()은 문자열의 맨 앞글자만 대문자로 바꾼다. 그럼 capitalize()와 title()은 같은 역할을 하는 것일까? s2='abc def'와 같이 공백이 있는 경우의 capitalize()와 title() 함수 적용 결과는 다음과 같다. capitalize() 함수는 문자열 s2의 맨 앞글자인 a만을 대문자 A로 바꾼 반면, title() 함수는 공백을 기준으로 문자열을 분리한 듯 a와 d를 각각 대문자 A,..
LightGBM
·
Machine Learning
LightGBM XGBoost 이후로 나온 최신 부스팅 모델 리프 중심 트리 분할 방식 사용 종속변수가 연속형 데이터인 경우든 범주형 데이터인 경우든 모두 사용할 수 있음 이미지나 자연어가 아닌 표로 정리된 데이터라면 거의 모든 상황에서 활용할 수 있음 장점 단점 XGBoost보다도 빠르고 높은 정확도를 보여주는 경우가 많음 복잡한 모델인 만큼, 해석에 어려움이 있음 예측에 영향을 미친 변수의 중요도를 확인할 수 있음 하이퍼파라미터 튜닝이 까다로움 변수 종류가 많고 데이터가 클수록 상대적으로 뛰어난 성능을 보여줌 코드 import lightgbm as lgb model = lgb.LGBMClassifier(random_state=100) model.fit(X_train, y_train) pred = mo..