- 베이즈 정리(Bayes' theorem)Cat_Code인공지능을 공부하다보면 수많은 모델들이 오늘 정리할 '베이즈 정리'에 기반을 두고 있다는 것을 확인 할 수 있다. 기초적인 조건부 확률을 통해서 모델을 구성하고 실제 세계에 이러한 모델들을 적용하고 있는 것이다 1. 조건부 확률? 고등학교 시절 확률과 통계를 배워본 학생이라면 '조건부 확률'은 한번쯤 들어보았을 것이다. A와 B라는 사건이 있다고 가정해보자 여기서 조건부 확률은 특정한 사건이 발생한 상황에서 또 다른 사건이 발생할 확률로B가 일어난 상황에서 A가 발생할 확률(조건부 확률 예시)이다 이를 수식으로 표현하면 아래와 같다 $P(A|B)$ 또한 이를 정리하면 아래와 같다 $P(A|B) = \frac{P(A \cap B)}{P(B)} $ 이를 활용하면 베이즈 정리를 할 수 있다 2. 베이즈 정리 ..
- 2023-01-03 17:03:31(2년 전)
- [Python] 파이썬 데코레이터Cat_Code데코레이터 decorator 데이터 분석을 하다보면 특히, Pytorch를 활용하다 보면 @[메소드명]을 클래스나 메소드 위에 작성한 예시를 자주보게 될것이다. 이러한 것을 데코레이터 decorator방식이라고 하는데 왜 사용하는 것일까? 바로 메소드를 수정하지 않고 특정 동작을 이용할 수 있기 때문이다. 언제나 그렇듯 간단한 예시로 살펴보자 def Hi(): print('Hi !') >>> Hi() Hi ! Hi !를 출력해주는 간단한 메소드를 작성해 보았다 그런데 우리 서비스는 이용자가 들어올때마다 >>>이용자 이름 >>>Hi ! >>>선택한 서비스 순서로 출력하는 메소드를 구성하고 싶다 이미 우리에게 Hi !를 출력하는 메소드가 있기 때문에 이를 이용해서 새로운 메소드를 작성해 보자 def serv..
- 2022-12-27 16:50:12(2년 전)
- [Python] 간단한 class 정리 및 객체지향 프로그래밍Cat_Code참고자료 : https://wikidocs.net/16071 41. class 정리 - 클래스 기본적인 사용 ## 1. 클래스 개요 - 클래스는 객체의 구조와 행동을 정의합니다. - 객체의 클래스는 초기화를 통해 제어합니다. - 클래스는 복잡한 문제를 다루기 쉽도록 만듭니다. ##… wikidocs.net 1. 객체지향 프로그래밍 C, C++, Java 그리고 Python은 대표적인 객체지향 프로그래밍 (Object-Oriented Programming, OOP) 언어이다 여기서 '객체지향'을 이해할 필요가 있다. 쉽게 설명하자면 하나의 프로그램을 구성하기 위해서 다양한 객체를 이용해서 구성한다는 것이다. 우리가 코딩을 하면서 마주치는 상황중에서 이전에 썼던 for문이나 구조가 뒤에서 다시한번 사용되는 ..
- 2022-12-26 23:34:55(2년 전)
- [백준] 1038번 감소하는 수 파이썬(Python) 풀이Cat_Code1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net [문제] [코드] from itertools import combinations N = int(input()) result = [] for i in range(1, 11): for temp in combinations(range(0, 10), i): temp = list(temp) temp.sort(reverse=True) result.append(int("".join(map(str, temp)))) result.sort() try: print(r..
- 2022-12-22 19:00:30(2년 전)
- [백준] 10844번 쉬운 계단 수 파이썬(Python) 풀이Cat_Code10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net [문제] [코드] N = int(input()) dp = [[0]*10 for _ in range(N+1)] for i in range(1, 10): dp[1][i] = 1 for i in range(2, N+1): for j in range(10): if j ==0: dp[i][j] = dp[i-1][1] elif j == 9: dp[i][j] = dp[i-1][8] else: dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1] print(sum(dp[N]) % 1000000000) [해설] 다이나믹 프로그래밍 문제이다 문제의 핵심 간단하다 아래의 그림을 참..
- 2022-12-19 18:40:54(2년 전)
- [백준] 1932번 정수 삼각형 파이썬(Python) 풀이Cat_Code1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline n = int(input()) tree = [] for _ in range(n): tree.append([int(f) for f in input().split()]) for i in range(1, n): for j in range(0 , i+1): if j == 0: tree[i][0] += tree[i-1][0] elif j == i: tree[i][j] += tree[i-1][j-1] else: tree[i][j] += max(tree[i-1]..
- 2022-12-15 16:44:03(2년 전)
- [Deep한 머신러닝] Boosting 부스팅 3편 (GradientBoost Classification)Cat_Code1. Boosting 부스팅 핸즈온 머신러닝의 앙상블 (https://eumgill98.tistory.com/20)을 공부하다 보니 다른 앙상블 기법들은 이해하기 쉬웠으나 Boosting 부스팅이 조금 더 자세히 살펴볼 필요가 있다고 생각되어서 (수식적인 이해를 할 식들이 많다) Deep한 머신러닝의첫 번째 주제로 선택하게 되었다 이번 글에서는 Boosting 깊이 있게 살펴 보려고 한다 포괄적인 이해를 원한다면 위의 앙상블 포스팅 링크를 참조해주기를 바란다 1.2.2 Gradient Boosting - Classification 지난시간 우리는 Gradient Boosting, 그중에서도 상대적으로 이해하기 쉬운 Regression에 대해서 알아 보았다 이번시간에는 Classification에 대해서 ..
- 2022-12-13 18:09:07(2년 전)
- [백준] 1946번 신입 사원 파이썬(Python) 풀이Cat_Code1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline case = int(input()) for _ in range(case): N = int(input()) total = [] for _ in range(N): a, b = map(int, input().split()) total.append((a, b)) total.sort(key=lambda x: x[0]) cnt = 1 check = total[0][1..
- 2022-12-13 13:34:42(2년 전)
- [Deep한 머신러닝] Boosting 부스팅 2편(GradientBoosting Regression)Cat_Code1. Boosting 부스팅 핸즈온 머신러닝의 앙상블 (https://eumgill98.tistory.com/20)을 공부하다 보니 다른 앙상블 기법들은 이해하기 쉬웠으나 Boosting 부스팅이 조금 더 자세히 살펴볼 필요가 있다고 생각되어서 (수식적인 이해를 할 식들이 많다) Deep한 머신러닝의첫 번째 주제로 선택하게 되었다 이번 글에서는 Boosting 깊이 있게 살펴 보려고 한다 포괄적인 이해를 원한다면 위의 앙상블 포스팅 링크를 참조해주기를 바란다 1.2.1 Gradient Boosting - Regression 오늘 알아볼 Boosting 기법은 Gradient Boosting 그중에서도 Regression이다 Classfication과 Regression의 수식이 조금 다르기 때문에 비교적..
- 2022-12-12 19:46:27(2년 전)
- [백준] 2667번 단지 번호 붙이기 파이썬(Python) 풀이Cat_Code2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net [문제] [코드] DFS (깊이 우선 탐색) 풀이 import sys from collections import deque input = sys.stdin.readline N = int(input()) graph = [] result = [] count = 0 for _ in range(N): graph.append(list(map(int, input().rstrip()))) dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] def dfs(x, ..
- 2022-12-12 15:06:33(2년 전)
- [Deep한 머신 러닝] Boosting 부스팅 1편(Ada boosting)Cat_Code1. Boosting 부스팅 핸즈온 머신러닝의 앙상블 (https://eumgill98.tistory.com/20)을 공부하다 보니 다른 앙상블 기법들은 이해하기 쉬웠으나 Boosting 부스팅이 조금 더 자세히 살펴볼 필요가 있다고 생각되어서 (수식적인 이해를 할 식들이 많다) Deep한 머신러닝의첫 번째 주제로 선택하게 되었다 이번 글에서는 Boosting 깊이 있게 살펴 보려고 한다 포괄적인 이해를 원한다면 위의 앙상블 포스팅 링크를 참조해주기를 바란다 1.1 AdaBoosting 오늘 알아볼 부스팅은 AdaBoosting이다 참고한 동영상 강의 : https://youtu.be/HZg8_wZPZGU AdaBoosting은 Adaptive + Boosting으로 만들어진 단어로 약한 분류기(weak..
- 2022-12-09 20:47:57(2년 전)
- [백준] 1654번 랜선 자르기 파이썬 풀이Cat_Code1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline k, n = map(int, input().split()) LAN_LIST = [] for _ in range(k): LAN_LIST.append(int(input())) start = 1 end = max(LAN_LIST) while start = n: result = mid start = mid + 1 else: end = mid - 1 prin..
- 2022-12-09 17:43:25(2년 전)
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)