일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- session 유지
- flask
- TensorFlow
- correlation
- Counterfactual Explanations
- youtube data
- 유튜브 API
- Retry
- requests
- login crawling
- integrated gradient
- tensorflow text
- top_k
- UDF
- spark udf
- XAI
- 상관관계
- hadoop
- 공분산
- grad-cam
- subdag
- gather_nd
- API
- API Gateway
- GCP
- chatGPT
- Airflow
- BigQuery
- GenericGBQException
- airflow subdag
- Today
- Total
목록Computer Science (36)
데이터과학 삼학년
시스템 콜 응용 프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스) 관계 → 도서관에 비유 운영체제는 도서관 응용 프로그램은 시민 컴퓨터 하드웨어는 책 운영체제의 역할 시민이 도서관에 책(자원)을 요청 도서관은 적절한 책을 찾아 시민에게 대여 시민의 기한이 다 되면, 도서관이 책 회수 응용 프로그램의 요청시 메모리 허가 및 분배 / CPU 시간 제공 / IO Devices 사용을 허가 및 제어 운영체제는 사용자 인터페이스 제공 쉘(Shell) 사용자가 OS 기능과 서비스를 조작할 수 있도록 인터페이스를 제공 쉘은 CLI와 GUI 두 종류로 분류 운영체제는 응용 프로그램을 위해서도 인터페이스를 제공 API (Application Programming Interface) 해당 신청서 양식이 아니면 도서관(..
피보나치 수열은 앞의 두개의 숫자를 합한 값이 자신의 value가 되는 수열을 말한다. 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 기초적으로 이런 피보나치 수열을 푸는 알고리즘의 예로 recursive function을 쓰긴 하지만 이는 숫자가 커지면 그만큼 함수의 호출이 많아지므로 메모리가 터지는(?) 문제가 생긴다 def fibonacci(n): if n < 2: return n return fibonacci(n-1) + fibonacci(n-2) 이러한 문제를 해결하기 위해 memoization 을 이용해 (캐쉬와 비슷한 개념) 푸는 접근 방법도 있다. memo = {1:1, 2:1} def fibonacci(n): if n == 0: return 0 if n not in memo..
운영체제 오리엔테이션 - 운영체제는 난이도가 높은 과목 - 컴퓨팅 사고가 고도로 발달한 분들이 모여서 만든 것 - 학습전략 : 문과 -> 외워라, 모두 -> 핵심이론, 용어에 집중, 감을 잡는데 중점/ 80%만 이해해도 성공 - 처음 배우는 분들도 따라올 수 있도록 구성 - 용어는 처음 배우시는 분들을 위해 가볍게 짚고 넘어감 - 반복하며 조금씩 깊게 설명 - 운영체제는 컴퓨터 사이언스 전공 필수 과목 - 소프트웨어 + 하드웨어 - 자료구조, 알고리즘의 필요성을 깨달을 수 있음 운영체제 큰그림 - Operating System : OS - 운영체제의 역할1 : 시스템 자원(System Resource) = 컴퓨터 하드웨어를 관리한다! > CPU(중앙처리장치), Memory(DRAM,RAM) > I/O D..
버블 정렬 두 개의 데이터를 서로 비교 하면서 큰지, 작은지의 여부에 따라 정렬하는 방법 시간복잡도는 O(n^2) 으로 가장 단순하면서 오래걸리는 정렬 방법이다. - 버블 정렬은 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네 번째를, … 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬한다. - 1회전을 수행하고 나면 가장 큰 자료가 맨 뒤로 이동하므로 2회전에서는 맨 끝에 있는 자료는 정렬에서 제외되고, 2회전을 수행하고 나면 끝에서 두 번째 자료까지는 정렬에서 제외된다. 이렇게 정렬을 1회전 수행할 때마다 정렬에서 제외되는 데이터가 하나씩 늘어난다. 파이썬 코드 def bubble(lst): for j in range(len(lst..
이진분할로 중간 pivot을 이용해 데이터를 정렬하는 기법 recursion을 이용하면..간단히(?) 풀 수 있다. def quick_sort(arr): if len(arr) pivot: greater_arr.append(num) else: equal_arr.append(num) return quick_sort(lesser_arr) + equal_arr + quick_sort(greater_arr)
계수 정렬 계수 정렬(Counting Sort)는 크기를 기준으로 데이터의 개수를 세는 정렬 알고리즘입니다. 각 데이터 를 바로 크기를 기준으로 분류하므로 O(N)의 시간 복잡도를 가집니다. 한마디로 0 부터 정렬하고자 하는 숫자의 최대값 만큼 인덱스를 만들어서 숫자를 count 하고 정렬하는 방식
합병 정렬(merge sort) 알고리즘의 개념 요약 ‘존 폰 노이만(John von Neumann)’이라는 사람이 제안한 방법 일반적인 방법으로 구현했을 때 이 정렬은 안정 정렬 에 속하며, 분할 정복 알고리즘의 하나 이다. 분할 정복(divide and conquer) 방법 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. 분할 정복 방법은 대개 순환 호출을 이용하여 구현한다. 과정 설명 리스트의 길이가 0 또는 1이면 이미 정렬된 것으로 본다. 그렇지 않은 경우에는 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. 두 부분 리스트를 다시 하나의 정렬된 리스트..
기수정렬은 낮은 자리수부터 비교하여 정렬해 간다는 것을 기본 개념으로 하는 정렬 알고리즘 기수정렬은 비교 연산을 하지 않으며 정렬 속도가 빠르지만 데이터 전체 크기에 기수 테이블의 크기만한 메모리가 더 필요 ■ 정렬 방식 1. 0~9 까지의 Bucket(Queue 자료구조의)을 준비한다. 2. 모든 데이터에 대하여 가장 낮은 자리수에 해당하는 Bucket에 차례대로 데이터를 둔다. 3. 0부터 차례대로 버킷에서 데이터를 다시 가져온다. 4. 가장 높은 자리수를 기준으로 하여 자리수를 높여가며 2번 3번 과정을 반복한다. 아래의 8개 데이터에 대하여 기수 정렬을 시도해 보겠습니다. 위의 그림과 같이 각 숫자에 해당하는 Queue공간을 할당하고 진행합니다. 먼저 1의 자리 숫자부터 시도를 합니다. 데이터 순..