All Posts

[R] 다중변수 탐색적 자료 분석(EDA)
·
Language/R
기본적 자료 분석 다중변수는 열이 두 개 이상인 자료를 말한다. 이때 열을 필드, 변수라고도 하고, 따라서 열이 두 개 이상인 자료를 다중변수라고 한다. 보통 매트릭스나 데이터프레임을 활용하여 분석한다.str 함수를 통해 행과 열의 개수, 각 열의 이름과 그 열에 들어있는 자료의 자료형, 대략적인 자료 내용을 확인할 수 있다.str(data_name)iris 데이터를 확인해본다면 아래와 같이 나온다.'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... $ Petal.L..
[R] 단일변수 탐색적 자료 분석(EDA)
·
Language/R
기본적 자료 분석 기본적으로 확인할 것은 데이터의 자료형(data type)이다. 이는 보통 class 혹은 mode 함수로 확인한다. class 는 데이터 자체의 자료형을 반환하고, mode 는 데이터 내부의 자료형을 반환한다. 예를 들어 어떤 매트릭스 변수에 숫자 데이터가 들어있다면, class 를 통해서 변수를 확인할 때는 matrix 와 array 를 반환하지만, mode 를 통해서 확인하면 numeric 을 반환한다. 단, 벡터 변수의 경우 class 로 확인해도 vector 를 반환하는 것이 아니라 내부 데이터 자료형을 반환한다. 범주형 자료 질적 자료(참고 링크)라고도 불린다. 기본적으로 누적 도수(참고 링크)를 통해 비율을 구한 후 이 비율을 분석한다. 아래와 같은 기본적인 데이터를 가정하..
[R] which 를 이용한 데이터 위치 확인
·
Language/R
which 조건문을 통한 인덱싱(링크)으로 벡터에서 조건을 만족하는 데이터에 대해서는 TRUE 로, 조건을 만족하지 않는 데이터에 대해서는 FALSE 로 변환하여 새로운 벡터를 만들어내고, 이를 통해 다시 조건을 만족하는 값을 벡터에서 뽑아낼 수 있었다.which 함수를 이용해서도 비슷한 일을 할 수 있다. which 함수는 해당 데이터 셋에서 조건에 맞는 인덱스를 반환해주는 함수이다. 기본 문법은 아래와 같다.which(data_and_condition)예를 들어서 1 부터 10 까지 아래와 같이 무작위로 있는 벡터에서 5 이상인 값의 인덱스만 알고 싶다면 아래와 같이 which 를 사용할 수 있다.data = 5)벡터가 아니라 매트릭스나 데이터프레임에 적용하여 조건에 만족하는 행의 인덱스를 추출할 수..
[R] for 와 while 을 통한 반복문 및 apply
·
Language/R
for 문 for 문은 특정 범위를 지정하여 실행하는 반복문이다. 기본 문법은 아래와 같다.for (item in range) { ...}range 에는 벡터, 매트릭스, 배열, 리스트 등을 넣을 수 있다. 벡터, 매트릭스, 배열을 넣으면 각 값이 순차적으로, 즉 1열 1행부터 1열 2행 순으로 item 에 대입된다. 데이터프레임은 열 전체가, 리스트도 데이터 전체가 순차적으로 대입된다.모든 데이터가 대입된 후 하위 코드, 즉 {} 안에 있는 코드가 모두 실행되었다면 종료된다. while 문  while 문은 특정 조건을 지정하여 실행하는 반복문이다. 기본 문법은 아래와 같다.while (condition) { ...}condition 이 TRUE 이면 while 문 하위 코드, 즉 {} 안에..
[C++] 연산자 오버로딩(operator overloading)
·
Language/C & C++
연산자 C++ 에서 연산자는 다양한 자료형에 대응하여 연산을 진행한다. 예를들어 int 형과 int 형을 더하면 각 숫자를 더하여 반환하고, 문자열과 문자열을 더하면 각 문자열을 이어서 반환한다. 기본 자료형이 아니라 클래스에 대해서도 다른 연산을 진행하는 경우가 있다. 예를 들어 std::cout 은 연산자 오버로딩은 클래스 내부에서 정의되어 위 예시처럼 사용될 수도 있고, 전역에서 정의되어 사용할 수도 있다. 그러나 전역에서 사용되려면 friend 를 알아야 제대로 사용할 수 있다. 클래스 내 연산자 오버로딩 연산자 오버로딩은 클래스 내에서 진행된다. 선언하는 문법은 다음과 같다.return_datatype operator operator_name(parameter);operator_name 에 연산..
[C++] 프렌드(friend)를 통한 클래스 멤버 접근
·
Language/C & C++
멤버 접근 접근 지정자(참고 링크)를 통해 클래스 내의 멤버에 대해서 접근을 금지하거나 허용할 수 있었는데, private 나 protect 로 설정되어 접근이 막힌 클래스 멤버에 대해 클래스의 멤버 함수가 아니라 다른 함수에서 접근이 필요할 수 있다. 특히 서로 다른 클래스에 대한 연산을 함수로 구현한다면, 이때 사용되는 클래스들의 멤버 변수 접근이 막혀있는데, 접근이 필요할 수 있다. 멤버 변수 접근을 public 으로 풀어버릴 수도 있지만, 이 경우 클래스의 은닉성을 깨는 것이기 때문에 권장되지 않는다. 이때 사용하는 것이 friend 이다.클래스 내에서 friend 를 이용하여 접근을 허용해주어 클래스에서 접근이 금지되었던 멤버에 접근할 수 있게 한다. 이때 전역변수, 다른 클래스의 멤버 함수, ..
[Data Structure] 연결 리스트(linked list)
·
Data Structure & Algorithm/Data Structure
연결 리스트  연결 리스트는 노드(node)로 구현된 리스트이다. 기존 배열을 통해 리스트를 사용하는 방식은 데이터 값을 연속적인 형태로 저장하기에 접근이 용이하다는 장점이 있었지만, 삽입과 삭제는 어렵다는 단점이 있었다. 즉 배열에서 접근은 임의접근이 가능하기 때문에 $ \mathcal{O}(1) $ 의 시간복잡도를 가졌지만, 삽입과 삭제는 최대 $ \mathcal{O}(n) $ 의 시간복잡도를 가졌다. 그러나 노드로 연결 리스트를 구현한다면 접근은 어렵다는 단점이 있지만, 삽입과 삭제가 상대적으로 쉽고, 고정된 크기를 가지지 않기에 유연하게 크기를 설정할 수 있다는 장점이 있다. 즉 접근에는 최대 $ \mathcal{O}(n) $ 의 시간복잡도를 가지지만, 삽입과 삭제는 $ \mathcal{O}(1)..
[Linear Algebra] 벡터공간(vector space)과 부분공간(subspace)
·
Mathematics/Linear Algebra
벡터공간 (Vector Space) 벡터공간은 다음과 같이 정의한다. 이때 벡터공간의 원소를 벡터(vector), 실수를 스칼라(scalar)라 한다.공집합이 아닌 집합 $ V $ 에 임의의 $ \mathbf{x}, \mathbf{y} \in V $ 와 $ k \in \mathbb{R} $ 에 대하여 합 $ \mathbf{x} + \mathbf{y} $ 와 스칼라 곱 $ k \mathbf{x} $ 가 정의되어 있고, 다음을 만족하면 $ V $ 를 벡터공간이라 한다.모든 $ \mathbf{x}, \mathbf{y} \in V $ 에 대하여 $ \mathbf{x} + \mathbf{y} = \mathbf{y} + \mathbf{x} $ 가 성립한다.모든 $ \mathbf{x}, \mathbf{y}, \mat..
[Linear Algebra] 다차원 벡터(multidimensional vector)
·
Mathematics/Linear Algebra
$ n $ 차원 벡터 $ \mathbb{R}^3 $ 에서 정의한 벡터를 $ \mathbb{R}^n $ 의 벡터로 일반화시켜 벡터의 성질을 확인할 수 있다. 대부분 성질은 $ \mathbb{R}^3 $ 에서 정의되었던 벡터의 성질을 공유한다.$ n $ 개의 실수의 순서쌍을 $ n $ 차원 벡터(n-dimensional vector)라 하고 3차원 벡터와 마찬가지로 수열이나 행렬로 나타내며, 각 원소를 성분이라 한다. 덧셈과 스칼라 곱 역시 동일한 방식으로 계산하도록 정의한다.크기 역시 비슷한데, $ \mathbf{x} = (x_1, x_2, \dots , x_n) $ 일 때 이 벡터의 크기는 $ \| \mathbf{x} \| = \sqrt{x_1^2 + x_2^2 + \cdots x_n^2 } $ 이다.기..
[Linear Algebra] 정사영(orthogonal projection)과 거리 공식
·
Mathematics/Linear Algebra
정사영 (Orthogonal Projection) $ \mathbb{R}^3 $ 의 벡터 $ \mathbf{x} = \overrightarrow{OP} $ 와 $ \mathbf{y} = \overrightarrow{OQ} \leq \mathbf{0} $ 가 있을 때, 점 $ P $ 에서 직선 $ OQ $ 에 내린 수선읠 발을 $ R $ 이라 하면 벡터 $ \mathbf{x_1} = \overrightarrow{OR} $ 을 $ \mathbf{y} $ 위로의 $ \mathbf{x} $ 의 정사영이라 한다.정사영은 다음과 같이 나타낸다.$$ \mathbf{x_1} = \operatorname{proj}_\mathbf{y} \mathbf{x} $$이때 $ \mathbf{x_2} = \overrightarrow..
애스터로이드
'분류 전체보기' 카테고리의 글 목록 (10 Page)