일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ack
- 넘파이 배열
- c++
- Design Pattern
- numpy 기초
- 코딩테스트
- lambda
- 차원축소
- 코테
- 넘파이 기초
- 파이썬
- java
- 자바
- 클러스터링
- 합성곱 신경망
- 기계학습
- 데이터 분석
- python
- 코딩테스트실력진단
- cpp class
- 네트워크 기초
- 코드트리
- OOP
- cpp
- NumPy
- Machine Learning
- 머신러닝
- 디자인 패턴
- 데이터 마이닝
- 넘파이
- Today
- Total
목록python (16)
준비하는 대학생

K-means 알고리즘 K-means 알고리즘은 가장 간단하면서도 널리 사용되는 클러스터링 알고리즘 중 하나입니다. 이 알고리즘은 데이터를 K개의 클러스터로 나누는 방법으로 동작합니다. K-means 알고리즘의 동작 과정은 다음과 같습니다. K개의 클러스터 중심점(centroid)을 임의로 선택합니다. 각 데이터 포인트들을 가장 가까운 클러스터 중심점에 할당합니다. 할당된 데이터 포인트들의 평균값을 계산하여 새로운 클러스터 중심점을 업데이트합니다. 2-3단계를 반복합니다. 클러스터 할당이 변하지 않거나, 미리 정한 반복 횟수에 도달하면 알고리즘이 종료됩니다. K-means 알고리즘의 단점 중 하나는, 초기 클러스터 중심점의 위치가 무작위로 결정되기 때문에, 다른 결과를 도출할 수 있다는 것입니다. 따라서..

1. K-means 클러스터링이란? K-means 클러스터링은 군집분석의 한 방법으로, 데이터를 비슷한 특징을 가진 그룹으로 나누는 기법입니다. K-means 클러스터링은 각 데이터 포인트와 그룹의 중심 간의 거리를 측정하여 가장 가까운 그룹에 할당하는 방식으로 동작합니다. 이를 반복하여 그룹의 중심을 업데이트하고, 그룹 간의 거리를 줄여나가며 클러스터를 형성합니다. K-means 클러스터링은 비계층적인 방식으로 동작하며, 클러스터의 개수를 미리 지정해주어야 합니다. 클러스터의 개수는 사용자가 정해주어야 하며, 적절한 클러스터 개수를 선택하는 것이 중요합니다. 2. K-means 클러스터링 예시 K-means 클러스터링 예시를 보겠습니다. 먼저, 필요한 라이브러리들을 import합니다. import nu..

1. 군집분석이란? 군집분석은 데이터를 비슷한 특징을 가진 그룹으로 나누는 기법으로, 데이터 분석 및 기계학습 분야에서 많이 활용됩니다. 군집분석을 통해 비슷한 특성을 가진 데이터끼리 그룹으로 묶어서 특성을 파악하고, 그룹 간의 차이점을 분석하여 새로운 인사이트를 얻을 수 있습니다. 2. 계층적 클러스터링이란? 계층적 클러스터링은 군집분석의 한 방법으로, 데이터를 계층적으로 묶어가며 클러스터를 형성하는 방법입니다. 데이터 포인트들을 가장 가까운 클러스터로 묶어나가며, 클러스터 간의 거리를 계산하여 계층적으로 클러스터를 형성합니다. 이렇게 계층적으로 클러스터를 형성하면, 데이터의 유사도를 시각화하기 쉽고, 데이터를 보다 잘 이해할 수 있게 됩니다. 계층적 클러스터링은 두 가지 방법으로 나눌 수 있습니다. ..
1. NumPy sort 함수 NumPy의 sort() 함수는 배열을 오름차순으로 정렬하는데 사용됩니다. 기본적으로 numpy.sort() 함수는 다음과 같은 형태로 사용할 수 있습니다. import numpy as np arr = np.array([4, 2, 1, 5, 3]) sorted_arr = np.sort(arr) print(sorted_arr) 결과 [1 2 3 4 5] 2. 정렬 알고리즘 선택하기 numpy.sort() 함수는 선택적으로 정렬 알고리즘을 지정할 수 있습니다. 이때 kind 매개변수를 사용하여 선택할 수 있는 알고리즘은 다음과 같습니다. 'quicksort': 퀵 정렬 (기본값) 'mergesort': 병합 정렬 'heapsort': 힙 정렬 'stable': 안정적인 정렬 알..
넘파이 배열 인덱싱 넘파이 배열에서의 인덱싱은 다음 4가지 방법으로 이루어집니다. 단일 값 추출 : 특정한 위치의 데이터 선택 슬라이싱(Slicing) : 연속된 인덱스 위치의 데이터 선택 팬시 인덱싱(Fancy Indexing) : 인덱스 집합을 리스트형태로 지정하여 데이터 선택 불린 인덱싱(Boolean Indexing) : True/False 기반으로 True에 해당하는 인덱스 위치의 데이터 선택 이제 각각의 방법에 대해 자세히 알아보겠습니다. 1. 단일 값 추출 단일 값 추출은 넘파이 배열에서 특정한 위치의 데이터를 선택하는 방법입니다. 이때 대괄호([]) 안에 인덱스를 지정하여 데이터를 선택합니다. 예를 들어, 다음과 같이 1차원 배열에서 단일 값 추출을 수행할 수 있습니다. import num..
넘파이 배열은 reshape() 함수를 이용하여 배열의 크기를 변경하거나 차원을 추가/제거할 수 있습니다. reshape() 함수 넘파이에서 reshape() 함수는 다음과 같이 정의됩니다. numpy.reshape(arr, newshape, order='C') arr: 변경하려는 배열 newshape: 변경하려는 배열의 새로운 shape order: 배열의 요소 순서. 'C'(기본값)는 C 언어 스타일의 요소 순서, 'F'는 포트란 스타일의 요소 순서 reshape() 함수는 arr 배열의 shape을 newshape으로 변경하여 새로운 배열을 반환합니다. 이때, 새로운 배열의 요소 개수는 원래 배열의 요소 개수와 동일해야 합니다. 만약 newshape으로 지정된 크기가 원래 배열의 크기와 다르면, r..
zeros() NumPy에서 zeros() 함수는 모든 요소가 0인 배열을 생성하는 함수이다. 함수의 구문은 다음과 같다. numpy.zeros(shape, dtype=float, order='C') shape: 생성할 배열의 모양(shape)을 지정한다. 정수(int) 또는 정수들로 이루어진 튜플(tuple)로 지정한다. - 예를 들어, (3, 4)는 3행 4열의 2차원 배열을 의미한다. dtype: 생성할 배열의 자료형(data type)을 지정한다. (기본값: float) order: 생성할 배열의 메모리 저장 순서(order)를 지정한다. (기본값: 'C', 'C' or 'F' 로 지정한다.) 'C': C-style 메모리 저장 순서. 배열의 마지막 차원을 가장 먼저 변경 'F': Fortran-..

이번에 새 학기가 시작하고 대학교에서 기계학습을 공부하기 전에 이전에 배운 python numpy 기초를 정리하고 공부하기 위해 작성하였다. 넘파이(Numpy)를 왜 사용하는가? python에 기본적으로 list가 존재한다. list에는 어떠한 형태의 원소도 삽입할 수 있어 간편하게 사용할 수 있는 장점이 있다. 하지만, 이러한 장점으로 인해 속도가 매우 느리다는 단점이 있다. 이러한 단점을 극복하기 위해 numpy 라이브러리를 주로 사용한다. 리스트 vs 넘파이 넘파이와 리스트의 자료처리 속도를 비교해보자. import time start = time.time() nums = range(1000000) b = [i**4 for i in nums] end = time.time() print(end - s..