목록CSE (23)
minkylee
개념다익스트라 알고리즘을 확장하여 만들어진 경로 탐색 알고리즘이다. 드론이나 로봇 차량의 인공지능을 위해 개발되었다. A* 알고리즘은 현재 상태의 비용을 $ g(x) $ 현재 상태에서 다음 상태로 이동할 때의 휴리스틱 함수를 $ h(x) $ 라고 할 때, 둘을 더한$ f(x) = g(x) + h(x) $ 가 최소가 되는 지점을 우선적으로 탐색하는 방법이다. $ f(x) $ 가 작은 값부터 탐색하는 특성상 우선순위 큐가 사용된다. 휴리스틱 함수 $ h(x) $ 에 따라 성능이 극명하게 갈리며, $ f(x) = g(x) $ 일 때는 다익스트라 알고리즘과 동일하다. 다익스트라 : 가중치 그래프, 시작 노드 기준으로 모든 노드의 최단 경로 구함, 그리디 알고리즘A* : 가중치 그래프, 시작 노드에서 ..
Lie Factor는 데이터 시각화에서 사용되는 개념으로 시각적으로 표현된 데이터가 얼마나 실제 데이터의 비율을 왜곡하고 있는지를 나타내는 척도이다. 간단히 말해서, 시각화된 정보가 실제 데이터를 얼마나 정확하게 또는 부정확하게 나타내는지를 측정하는 방법 Effect Size in Graphic 은 시각화된 변화의 비율 (예를 들어, 그래프에서의 길이, 면적, 각도의 변화 등)Effect Size in Data는 실제 데이터에서의 변화 비율Lie Factor의 의미Lie Factor = 1 : 시각화가 데이터를 정확하게 표현하고 있음을 의미한다.Lie Factor > 1 : 시각화가 데이터보다 큰 효과를 주는 것처럼 표현되고 있어, 데이터를 과장하고 있음을 의미한다.Lie Factor..
데이터 프레임 메서드 info() 메서드데이터 프레임을 로딩한 후 가장 먼저 실행하는 명령어 중 하나데이터셋에 대한 필수적인 세부사항 제공행과 열의 수 : 데이터 프레임에 몇 개의 행과 열이 있는지 표시한다.non-null의 수 : 각 열에 있는 nonnull의 개수를 보여준다.열의 타입 : 열의 타입 : 각 열의 데이터 타입을 보여준다. (예. 정수, 실수, 문자열 등)메모리 사용량 : 데이터프레임이 메모리에서 차지하는 용량shape 메서드append()한 데이터 프레임을 다른 데이터 프레임에 추가한다.원본 데이터프레임을 변경하지 않고, 두 데이터프레임을 결합한 새로운 데이터프레임을 복사본으로 반환temp_df = movies_df.append(movies_df, movie..
판다스의 Dataframe은 다음과 같은 인수를 가진다. pandas.DataFrame(data, index , columns , dtype , copy ) Data : ndarray, series, map, lists, dict, 상수 및 다른 Dataframe까지 올 수 있다.index : 결과 프레임에 사용할 행 레이블, 입력하지 않은 경우 기본값으로 np.arrange(n) 값이 온다.columns : 행 레이블, 기본값은 np.arrange(n)이다. dtype : 행 레이블의 데이터 타입copy : 데이터를 복사할 때 쓴다. 기본값은 FalseSerise를 사용해서 Dataframe 만들기 시리즈 객체를 만든다.import datetime as dtimport num..
판다스 (Pandas)는 파이썬 데이터 처리를 위한 라이브러리이다. 파이썬을 이용한 데이터 분석과 같은 작업에서 필수 라이브러리로 알려져 있다. Pandas라는 이름은 "Panel Data" 와 "Python Data Analysis" 의 합성어이다. NumPy 저수준 데이터 구조(np.array) 대규모 다차원 배열 및 행렬 지원 광범위한 수학적 배열 연산 Pandas NumPy 기반으로 만들어진 RDMS(관계형 데이터 베이스)_Table 형태의 데이터 셋이다. 2차원 Table 형태로 다양한 칼럼(차원)을 관리할 수 있도록 만들어졌다. Dependencies: The Python Stack 시리즈(Series) 시리즈 클래스는 1차원 배열의 값(values)에 각 값에 대응되는 인덱스를 부여할 수 있..
많은 숫자 데이터를 하나의 변수에 넣고 관리 할 때 리스트는 속도가 느리고 메모리를 많이 차지하는 단점이 있다. 배열 (array)를 사용하면 적은 메모리로 많은 데이터를 빠르게 처리할 수 있다. 배열은 리스트와 비슷하지만 다음과 같은 점에서 다르다. 모든 원소가 같은 자료형이여야 한다. 원소의 갯수를 바꿀 수 없다. 파이썬은 자체적으로 배열 자료형을 제공하지 않는다. 따라서 배열을 구현한 다른 패키지를 임포트해야한다. 파이썬에서 배열을 사용하기 위한 표준 패키지는 넘파이(NumPy)이다. 넘파이 넘파이는 수치해석용 파이썬 패키지이다. 다차원의 배열 자료구조 클래스인 ndarray 클래스를 지원하며 벡터와 행렬을 사용하는 선형대수 계산에 주로 사용된다. 넘파이의 배열 연산은 C로 구현된 내부 반복문을 사..
그리디 알고리즘 매 선택에서 지금 이 순간 당장 최적인 답을 선택하여 적합한 결과를 도출하자. 예를 들어 5개의 도시를 모두 한 번씩만 거쳐서 여행한다고 가정하자, 기름값을 아끼기 위해 가장 짧은 경로를 선택해야한다고 하면, 이 문제를 해결하기 위해 여러 방법을 사용할 수 있다. 모든 경로를 검사하는 브루트 포스를 이용해 답을 구하거나, 외판원 순회같은 복잡한 전략을 쓸 수도 있고 " 지금 내가 있는 도시에서 고를 수 있는 도로 중 가장 짧은 도로를 선택한다 " 는 방법, 즉 그리디 알고리즘을 쓸 수도 있다. 단, 그리디 알고리즘을 사용하면 매 선택이 그 순간에 대해서는 최적이지만 그걸 종합적으로 봤을 땐 최적이라는 보장은 전혀 없다. 그리디 알고리즘은 부분의 최적해들의 집합이 곧 전체 문제의 해답이 될..
행렬 곱셈 정사각 행렬 A, B를 가지고 곱셈을 한다고 생각해보자. 행렬곱 C = AB는 다음과 함께 정의된다. 이 때 i = 1, ... ,m, j = 1, ..., p에 대해 C의 성분은 다음과 같이 정의된다. 이는 곧 A의 i번째 행과 B의 j번째 열의 성분들을 각각 곱해 더한 것과 같은데, A의 i번째 행과 B의 j번째 열의 스칼라곱인 것이다. 그런고로 AB는 다음과 같이 쓸 수도 있다. 3중 반복문이 행렬의 크기 n만큼 돌기 때문에 n x n 크기의 두 행렬을 곱하면 O(n^3) 의 시간이 소요된다. 줄이는 방법이 없을까? Strassen algorithm (슈트라센 알고리즘) 행렬의 덧셈이 곱셈보다 더 빠른 점을 이용하기 위해 쪼갠 행렬들의 곱셈 횟수를 줄이고 덧셈 횟수를 늘린다. 곱셈은 $ ..