◼️ 모든 글 ◼️

부스팅 알고리즘에 대해 공부하시는 분들이라면 CATBoost를 들어보셨을 것 같습니다. CATBoost를 Yandex라는 러시아 검색 엔진 인터넷 기업에서 개발한 그래디언트 부스팅 라이브러리입니다. 범주형 데이터를 다루는데 최적화 되어 있으며, XGBoost와 함께 여러 분야에서 사용하는 모델입니다. 📌 기존 부스팅과의 차이점(Ordered Boosting) 먼저, CATBoost는 Ordered Boosting(순서 부스팅)이라는 기법을 사용하여 데이터의 순서에 따라 모델을 학습시킵니다. 기존의 부스팅 모델들을 모든 훈련 데이터를 대상으로 잔차를 계산하여 트리를 적합해 나간다. CATBoost의 경우 학습 데이터의 일부만을 사용하여 잔차를 계산한 뒤, 해당 결과를 통해 모델을 만들어나간다. 이때 ord..
학회 때문에 pycaret을 쓰는데 이게 말썽이다.. 정말 pycaret은 좋은 물건?인데 항상 호환이 문제다. 전에 mri분석 때문에 사이킷런 버전을 좀 만졌더니 호환이 안되는 문제가 발생. 사이킷런 버전을 바꾸고 이것저것 해봤더니 또 다른 문제 발생... 그냥 가상환경을 사용하기로 결정. 가상환경 만드는 김에 포스팅도 하기로!! 가상환경은 말 그대로 가상의 환경이다. 나의 사례처럼 여러 프로젝트를 진행하는 사람들이 많을 것 같은데, 그때 마다 버전이 다르면 호환이 되지 않아 버전을 그때그때 갈아엎어야 하는 상황이 발생한다. 가상환경을 만들어서 따로 라이브러리를 관리하면 쉽게 제어 가능하다! - 가상환경 in Jupyter notebook 1. 가상환경 설치 먼저 가상 환경을 설치한다. 어렵진 않고, ..
📌 문제 📌 풀이 머리가 아프다... 쉬운 난이도 일텐데 ㅜㅜ 우선 분모랑 분자를 따로 보고, 반복 패턴을 확인하면 각각 아래와 같다. 분자 : [1], [1,2], [1,2,3], [1,2,3,4] ... 분모 : [1], [2,1], [3,2,1], [4,3,2,1] ... 먼저 여기서 힌트를 얻기.. 각 리스트의 길이(M)와 1~M의 요소가 리스트에 들어있다는 점. 분모와 분자는 순서차이일 뿐. 중요한 점은 그럼 입력을 받았을 때 몇 번째 리스트에 있는 지를 보는게 포인트. 위 패턴과 순서도 비교해보면? 분자 : [1], [1,2], [3,2,1], [1,2,3,4] ... 분모 : [1], [2,1], [1,2,3], [4,3,2,1] ... 입력 패턴 : [1], [2,3], [4,5,6], [..
📌 활성화 함수(Activation Functions)?? 머신 러닝과 딥러닝에서, 특히 딥러닝에서 활성화 함수는 신경망의 핵심 요소 중 하나로, 모델이 복잡한 문제를 해결할 수 있도록 합니다. 활성화 함수는 신경망의 각 뉴런에 들어오는 입력 신호의 총합을 출력 신호로 변환하는데 사용합니다. 이러한 함수들은 비선형 함수로 머신러닝의 트리 기반 모델에서 분류를 한 후 나오는 출력값을 확률로 변환하는데에도 사용됩니다. 크게 시그모이드 함수(Sigmoid function), 소프트맥스 함수(Softmax functions), ReLU 함수(Rectified Linear Unit functions), Leakly ReLU를 알아보겠습니다. 이 외에도 많은 활성화 함수가 있으며 분석에 있어서 데이터의 특징이나 분..
📌 문제 📌 풀이 보기엔 어려워 보이는데 결국 나누기 문제이다. 가장 편한 풀이는 아래와 같다 T = int(input()) for t in range(T): C = int(input()) Quarter = C // 25 Dime = (C - 25*Quarter) // 10 Nickel = (C - 25*Quarter - 10*Dime) // 5 Penny = C - 25*Quarter - 10*Dime - 5*Nickel print(Quarter, Dime, Nickel, Penny) 정말 간단히, 금액에서 쿼터로 나눈 몫을 반환, 금액에서 쿼터를 빼고 이를 다임으로 나눈 몫을 반환하고 .... 이를 반복하는 것 근데 아무리 봐도 이런 접근이 아닐 것이란 생각이 들었다... 어처피 같은 걸 반복하는건데..
📌 문제 📌 풀이 거창해서 어려워 보이는데, 굉장히 쉽다. 먼저 base로 0으로 이루어진 100 x 100의 행렬을 만들고 입력받은 행과 열에 각각 +10을 해서 해당 범위 안의 값을 1로 만들면 된다. 마지막으로 모든 행렬의 1값들을 더해주면, 겹치는 부분도 어처피 1이 되니까 넓이를 구할 수 있다. 위 그림 처럼 실제로 0과 1의 세계에서 구현하면 되는것.. base = [[0 for _ in range(100)] for _ in range(100)] score = 0 num = int(input()) for i in range(num): paper = list(map(int, input().split())) for j in range(paper[1], paper[1]+10): for k in ra..
📌 문제 📌 풀이 쉬웠는데 어이없는 실수로 계속 틀린문제... 아무리 봐도 아 뭐가 틀린거야!!! 하다가... 아래 코드에서 길이를 리스트에 더하는걸로 바꿨는데, 원래는 len(max(matrix))를 사용했다. 이때 max는 문자열에서는 사전순으로 정의된다는 점 ㅜㅜㅜ 이걸 까먹고 있었다.. matrix= [] length = [] word = '' for i in range(5): row = input() length.append(len(row)) matrix.append(row) for j in range(max(length)): for k in range(5): if j < length[k]: word += matrix[k][j] print(word)
📌 문제 📌 풀이 map() 함수를 꼭 외워놔야한다. 유용하니..(애초에 숫자는 int로 들어가게 해주세요오) 행과 열의 개수를 받고 빈 리스트 2개 생성. 행의 수만큼 반복하면서 각각 행렬 2개를 받은 후, 각 행의 각 열 단계로 반복하면서 요소들을 더하면 끝 A, B = map(int, input().split()) matrix1, matrix2 = [],[] for i in range(A): row = list(map(int, input().split())) matrix1.append(row) for j in range(A): row = list(map(int, input().split())) matrix2.append(row) for row in range(A): for col in range(B..
벌써 석사 3년차이다. AI에 관심을 가져 공부한지 약 1년반? 정도 된 것 같다. 처음에는 그냥 막연하고 이게 뭐지 했지만, 기본을 좋아하는 나의 특성상 심리학과지만 학부 막학기 때 선형대수학 수업을 들으며 A+를 받고 이해하려고 노력했고 결국 받아냈다. 이때의 성취감이 지금의 나까지 오게 만든 것 같다. 그 후 대학원에 입학하고, 교수님의 반대에도 꼭 머신러닝을 이용한 연구를 하고 싶었다. 결국 시작하긴 했는데 왜 반대했는지 알 것 같았다. 우선 심리학과가 매우 좁다. 이 좁다는 의미가 바라보는 시선이 매우 폐쇄적인다(나만의 생각일 수 있다.) 물론 나쁜 것 만은 아니다. 심리학 분야에 기계학습과 빅데이터 관련한 연구가 국내에선 오래되지 않았고 그저 '한번 써봐야지'라는 의미로 나온 연구도 많다. 때..
📌 문제 📌 풀이 단순한 연산이라.. 쉬웠는데 단순한 연산일 수록 계산 실수가 많은 법 ㅋㅋ 계속 제대로 했는데 왜 안되지!! 하다가 전공 평점 계산하는 법을 잘못 하고 있더라구요.. 문제나 제대로 읽을 걸 그랬습니다.. 먼저 등급별 리스트와 해당 학점의 점수 리스트를 만들고 과목명, 학점, 등급을 input으로 받았을 때 등급이 P면 아무 의미 없어서 continue로. F도 리스트안에 포함되어 있어서 상관없고 등급별 점수랑 학점 곱한 값 subject_score에 넣어주고 그냥 학점 값 grade_score에 넣어주고 연산만 하면 끝! # 25206번 grade_list = ['A+', 'A0', 'B+', 'B0', 'C+', 'C0', 'D+', 'D0', 'F'] score_list = [4.5..
Data_novice
'분류 전체보기' 카테고리의 글 목록 (2 Page)