목록전체 글 (90)
CS log
ANNAritificial Neural Network, 인공신경망사람 신경망 원리와 구조에 착안한 기계학습 알고리즘으로, 딥러닝의 기초가 됨 Perceptron인공신경망의 기본 요소이며, 신경 세포 하나를 의미함학습 방법 : 가중치 초기화 ➡️ 입력값과 가중치로 예측값 계산 ➡️ 예측값과 실제값 차이 계산 ➡️ 차이를 줄이도록 가중치 변경 ➡️ 반복 1) 단층 퍼셉트론 (single-layer perceptron)입력층과 출력층으로만 구성됨(은닉층x)한계 : XOR 게이트 구현 불가능 2) 다층 퍼셉트론(multi-layered perceptron MLP)은닉층 존재은닉층이 2개 이상인 신경망 -> 심층 신경망 (Deep Neural Network, DNN) * 같은 층의 노드 수를 늘리면 어떤 효과인..
📍문제https://www.acmicpc.net/problem/1182N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 📍입력첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. 📍출력첫째 줄에 합이 S가 되는 부분수열의 개수를 출력한다. 📍풀이 방법combination 함수를 쓴다 -! 📍코드import sysfrom itertools import combinationsN, S = map(int,sys.stdin.re..
📍문제https://www.acmicpc.net/problem/4779 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, 다음과 같은 과정을 통해서 칸토어 집합의 근사를 만들어보자. 1. -가 3N개 있는 문자열에서 시작한다.2. 문자열을 3등분 한 뒤, 가운데 문자열을 공백으로 바꾼다. 이렇게 하면, 선(문자열) 2개가 남는다.3. 이제 각 선(문자열)을 3등분 하고, 가운데 문자열을 공백으로 바꾼다. 이 과정은 모든 선의 길이가 1일때 까지 계속 한다.예를 들어, N=3인 경우, 길이가 27인 문자열로 시작한다.--------------------------..
재귀 함수란?: 어떤 함수에서 자신을 다시 호출하여 작업을 수행하는 방식의 함수를 의미반복문을 사용하는 코드는 항상 재귀 함수를 통해 구현하는 것이 가능하며 그 반대도 가능코드가 간결하고 이해하기 쉽다. 특정 유형의 문제(트리, 그래프 탐색 등)에 매우 적합함반복적인 스택의 사용으로 인해 메모리 및 속도에서 성능 저하가 발생할 수 있음 예시 def factorial(n): if n즉, 재귀 문제를 풀 때는 항상 base case와 recursive case로 경우를 나누어 주어야 함base case : 더 이상 자기 자신을 호출하지 않고, 직접 결과를 반환하는 조건 꼬리 재귀 (taili recursion)함수 호출의 결과로 반환되는 값에 함수 인자를 직접적으로 포함시키는 방식으로 구현재귀로 구현하고 ..
1. Decision Tree1) 개념데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리 기반 분류 규칙 (if/else)를 만드는 것최대한 균일한 데이터 세트를 구성할 수 있도록 분할하는 것이 필요! 이런 상태에서 어떻게 해야할까? 노란색 공의 경우 모두 동그라미로 구성, 빨강과 파랑 공의 경우는 동그라미, 세모, 네모가 골고루 섞여 있다. 따라서 가장 먼저 만들어져야 하는 규칙 조건은 if 색깔 == '노란색' 2) 장단점장점 : 쉽다, 직관적이다, 피쳐의 스케일링이나 정규화 등 사전 가공 영향도가 크지 않다.단점 : 과적합으로 알고리즘 성능이 떨어질 수 있기 때문에 트리의 크기를 사전에 제한하는 튜닝이 필요하다. 3) 결정트리의 파라미터- min_samples_split : 노드를 분할하기 위..