butter_shower
-
Butter Shower
Butter Shower
1년차 머신러닝 개발자의 와글와글 머신러닝 블로그!
인기 글
-
[pyspark/빅데이터기초] Parquet(파케이) 파일 형식이란?
[pyspark/빅데이터기초] Parquet(파케이) 파일 형식이란?
2021.11.17파케이(parquet)이란 하둡에서 칼럼방식으로 저장하는 저장 포맷을 말합니다. 파케이는 프로그래밍 언어, 데이터 모델 혹은 데이터 처리 엔진과 독립적으로 엔진과 하둡 생태계에 속한 프로젝트에서 칼럼 방식으로 데이터를 효율적으로 저장하여 처리 성능을 비약적으로 향상시킬 수 있습니다. 열(Column)기반 압축을 하고있는데 이는 칼럼의 데이터가 연속된 구조로 저장되어 있다. Row 중심으로 저장되어있는 것과는 아래 사진을 보면 이해가 빠를 것 같습니다. 열을 기반으로 데이터를 처리하면 행 기반으로 압축했을때에 비해 데이터의 압축률이 더 높고, 필요한 열의 데이터만 읽어서 처리하는 것이 가능하기 때문에 데이터 처리에 들어가는 지원을 절약할 수 있습니다. 파케이는 하둡 에코시스템 안에서 언제든지 사용 가능한 .. -
[Algorithm] 투포인터(Two Pointer) 알고리즘
[Algorithm] 투포인터(Two Pointer) 알고리즘
2021.04.28알고리즘 문제를 풀다보면 종종 나오는 투포인터 알고리즘! 막 꼬여가지고 ㅋㅋㅋ 저도 중간에 제대로 못짜고 그러는 경우가 많은데요, 많은 코딩테스트 문제에 등장하는 것은 아니지만 잊을만하면 종종 등장하는 투포인터 알고리즘에 대해 알아봅시다! 투포인터 (Two Pointers) 리스트에 순차적으로 접근해야 할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘 정렬되어있는 두 리스트의 합집합에도 사용됨. 병합정렬(merge sort)의 counquer 영역의 기초가 되기도 합니다. 예제 문제 - 특정한 합을 가지는 부분 연속 수열 찾기 투포인터 알고리즘의 대표적인 문제입니다. 어떤 숫자들의 리스트가 주어질 때, 해당 리스트의 연속 수열의 합이 특정 값을 가지는 것을 확인하는 문제입니다. 시작점과 끝점이 첫.. -
C언어 : 이진 탐색 (binary search)
C언어 : 이진 탐색 (binary search)
2018.12.15Binary Search 이진탐색이란? 데이터가 정렬되어 있는 배열에서 특정한 값을 찾아내는 알고리즘. 배열의 중간에 있는 임의의 값을 선택하여 찾고자 하는 값 x와 비교한다. x가 중간값보다 작으면 중간 값을 기준으로 좌측의 데이터들을, x가 중간값보다 크면 배열의 우측을 대상으로 다시 탐색한다. 순차 탐색 : 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 하나씩 확인 이진 탐색 : 정렬되어있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색 예시 이미 정렬되어있는 10개의 데이터 중에서 4인 원소를 찾는다고 해보자. 이진 탐색의 시간 복잡도 단계마다 탐색 범위를 2로 나누는 것과 동일하므로 연산 횟수는 O(log2N)�(log2�) 탐색 범위를 절반씩 줄여나가므로 시간 복잡도는 O(\..
최신 글
-
Jenkins Agent 연결의 종류 및 JNLP 끊김 해결 (JNLP -> WebSocket 연결로 전환)
Jenkins Agent 연결의 종류 및 JNLP 끊김 해결 (JNLP -> WebSocket 연결로 전환)
2024.02.27Jenkins Agent와 Master가 연결하는데에는 크게 (1)JNLP 방식과 (2)WebSocket 방식이 있습니다. Jenkins의 Master - Agent 연결 방식의 종류 JNLP (Java Network Launch Protocol) 방식 master와 agent가 연겨하는 데에 별도의 포트를 사용하여 master - agent 통신을 위한 독립적인 채널을 사용하는 방식 Jenkins 초기 버전부터 사용되어 온 방식 장점 : Jenkins에서 웹 트래픽과 Agent 통신 트래픽을 분리하여 관리할 수 있음. 단점 : 방화벽 설정이나 네트워크 정책에 따라 연결 문제를 일으킬 수 있음. WebSocket 방식 HTTP 연결을 업그레이드하여 양방향 통신 채널을 제공하는 방식으로, 웹 표준 기술이며.. -
파이썬에서 백업 파일 및 임시 파일 생성하는 방법
파이썬에서 백업 파일 및 임시 파일 생성하는 방법
2024.02.20가끔가다가 파일을 읽고 저장하는 과정에서 오류가 발생할 시 파일이 손상되어 더이상 사용할 수 없게 되는 경우들이 발생할 수 있다. 이를 위해 기존 파일에 대한 백업파일을 생성하고, 임시 파일에서 write 작업을 한뒤 기존 파일로 교체해주는 작업을 해줄 수 있다. 1. 백업 파일 생성하는 방법 파이썬의 shutil 라이브러리 내 .copy 함수를 이용하여 백업 파일을 생성하면 된다. import shutil path = '/path/to/data.pkl' # 임시 및 백업 경로 설정 temp_path = path + '.temp' backup_path = path + '.backup' # 백업 파일 생성 shutil.copy(path, backup_path) 2.. -
Ray와 Ray를 이용한 ML모델 학습 예시
Ray와 Ray를 이용한 ML모델 학습 예시
2024.02.15https://www.ray.io/ Productionizing and scaling Python ML workloads simply | Ray Scale your compute-intensive Python workloads. From reinforcement learning to large-scale model serving, Ray makes the power of distributed compute easy and accessible to every engineer. www.ray.io Ray란? 오픈소스 분산 컴퓨팅 프레임워크. Python 기반으로 간단하면서도 강력한 API를 제공하고 있다. (한마디로, 편하다!) 기계학습, 강화학습 등의 컴퓨팅 작업도 수월하게 처리 가능함. 핵심 기능 간편한.. -
Anaconda Conda 가상환경에서 pip로 패키지 설치하기
Anaconda Conda 가상환경에서 pip로 패키지 설치하기
2024.02.15conda 가상환경 생성 및 활성화 후에도 pip로 설치하면 제대로 설치가 되지 않는 경우가 있을 수 있습니다. 그럴때는 먼저 `which pip`를 해서 현재 pip의 경로가 어디로 설정되어있는지 한번 확인해주세요. 그렇지 않다면 절대경로를 입력해서 설치하는 방법이 있습니다. conda 가상환경 활성화 conda activate [가상환경명] conda 가상환경에 pip설치하기 conda install pip conda 가상환경의 절대경로에 pip로 설치하기 (예시 : 경로는 다를 수 있습니다) ~/.conda/envs/[가상환경명]/bin/pip install [패키지명] -
[혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 5주차
[혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 5주차
2024.02.05Chapter 6. 비지도학습 6-1. 군집 알고리즘 비지도학습 (unsupervised learning) 타깃 (label)이 없을때 사용하는 알고리즘. 군집화 (clustering) 비슷한 샘플끼리 그룹으로 모으는 작업 클러스터 (clusert) : 군집 알고리즘으로 만든 그룹 6-2. k-평균 k-평균 (k-means) : 평균값을 자동으로 찾아주는 대표적인 군집 알고리즘 평균값이 클러스터의 중심에 위치하기 때문에 클러스터 중심 (cluser cener) 또는 센트로이드 (centroid) 라고 불림. 알고리즘 동작 방법 1. 무작위로 k개의 클러스터 중심을 정함 2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정 3. 클러스터에 속한 샘플의 평균 값으로 클러스터의 중심.. -
[혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 4주차
[혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 4주차
2024.01.29Chapter 5. 트리 알고리즘 5-1. 결정 트리 결정 트리 (Decision Tree) 예/아니오에 대한 질문을 이어나가면서 정답을 찾아 학습하는 알고리즘 비교적 예측 과정을 이해하기 쉽고 성능도 뛰어남. 불순도 (Gini impurity) 결정트리가 최적의 질문을 찾기 위한 기준 $$\text{지니 불순도} = 1 - (\text{음성 클래스의 비율}^2 + \text{양성 클래스 비율}^2 )$$ 정보이득 (information gain) 부모 노드와 자식 노드의 불순도 차이. 결정트리는 제한없이 성장하면 과대적합 되기가 쉬움. 따라서 가지치기를 함으로써 결정트리의 성장을 제한하는 것도 한 방법 5-2. 교차 검증과 그리드 서치 검증 세트 (validation set) 모델의 과대적합을 막기 위..