Engineering WIKI
-
Go - InterfaceEngineering WIKI/GoLang 2021. 1. 19. 06:05
''' 구조체(struct)가 필드들의 집합체라면, interface는 메서드들의 집합체이다. interface는 타입(type)이 구현해야 하는 메서드 원형(prototype)들을 정의한다. 하나의 사용자 정의 타입이 interface를 구현하기 위해서는 단순히 그 인터페이스가 갖는 모든 메서드들을 구현하면 된다. 인터페이스는 struct와 마찬가지로 type 문을 사용하여 정의한다. ''' type Shape interface { area() float64 perimeter() float64 } //Rect 정의 type Rect struct { width, height float64 } //Circle 정의 type Circle struct { radius float64 } //Rect 타입에 대한..
-
Go - MapEngineering WIKI/GoLang 2021. 1. 19. 06:04
// Map은 키(Key)에 대응하는 값(Value)을 신속히 찾는 해시테이블(Hash table)을 구현한 자료구조 // "map[Key타입]Value타입" 과 같이 선언 var idMap map[int]string /* 이때 선언된 변수 idMap은 (map은 reference 타입이므로) nil 값을 갖으며, 이를 Nil Map이라 부른다. Nil map에는 어떤 데이타를 쓸 수 없는데, map을 초기화하기 위해 make()함수를 사용할 수 있다 (map 리터럴을 사용할 수도 있는 이는 아래 참조). */ idMap = make(map[int]string) /* map은 make() 함수를 써서 초기화할 수도 있지만, 리터럴(literal)을 사용해 초기화할 수도 있다. 리터럴 초기화는 "map[K..
-
Go - SliceEngineering WIKI/GoLang 2021. 1. 19. 06:02
// Go 배열은 고정된 크기를 가지지만 Go Slice 개념을 통해 유동적으로 크기 조절 가능 // var v []T -> 배열과 달리 크기 지정 x package main import "fmt" func main() { var a []int //슬라이스 변수 선언 a = []int{1, 2, 3} //슬라이스에 리터럴값 지정 a[1] = 10 fmt.Println(a) // [1, 10, 3]출력 } // Go에서 Slice를 생성하는 또 다른 방법으로 Go의 내장함수 make() 함수를 이용 /* make() 함수로 슬라이스를 생성하면, 개발자가 슬라이스의 길이(Length)와 용량(Capacity)을 임의로 지정할 수 있는 장점이 있다. make() 함수의 첫번째 파라미터에 생성할 슬라이스 타입을..
-
Go - ArrayEngineering WIKI/GoLang 2021. 1. 19. 06:01
//배열의 선언은 "var 변수명 [배열크기] 데이타타입" package main func main() { var a [3]int //정수형 3개 요소를 갖는 배열 a 선언 a[0] = 1 a[1] = 2 a[2] = 3 println(a[1]) // 2 출력 } /* 배열을 정의할 때, 초기값을 설정할 수도 있다. 초기값은 "[배열크기] 데이타타입" 뒤에 { } 괄호를 두고 초기값을 순서대로 적으면 된다 /*/ var a1 = [3]int{1, 2, 3} var a3 = [...]int{1, 2, 3} //배열크기 자동으로 // 다차원 배열 func main() { var a = [2][3]int{ {1, 2, 3}, {4, 5, 6}, //끝에 콤마 추가 } println(a[1][2]) }
-
의사결정나무Engineering WIKI/Data Science 2021. 1. 19. 05:59
의사결정나무 개요 의사결정나무는 데이터셋을 반복적으로 분할하는 과정을 통해 생성 데이터셋을 서브셋으로 분할하는 작업을 반복하여 서브셋 내의 데이터가 충분히 서로 동질적일 때까지 분할작업을 반복 의사결정나무는 분할과정을 나타낸 의사결정규칙을 나뭇가지 모양으로 도식화하며, 의사결정나무의 각 가지의 끝(즉 잎)은 분류판정을 나타냄 나무의 구조는 선택되는 가지에 따라 결정되는 결과 또는 귀속범주를 보여주며, 따라서 이러한 의사결정나무의 가지 구조를 바탕으로 새로운 케이스에 대한 분류(분류나무)와 예측(회귀나무)을 수행 의사결정나무분석 절차 데이터를 두 개의 집단으로 가장 잘 분할하는 예측변수와 분할점을 선택 이때 두 집단의 동질성 또는 순도가 최대화되도록 하는 예측변수와 분할점을 선정 예측변수와 분할점을 이용하..
-
나이브베이즈Engineering WIKI/Data Science 2021. 1. 19. 05:58
나이브베이즈 분석 예측변수의 값 : 사전에 알고 있는 정보 어떤 사건이 발생할 조건부 확률 : 예측변수의 값이 주어졌을 때 우리가 관심을 갖는 특정 범주가 발생할 확률 각 케이스별로 사건발생의 예측확률이 계산되면 이 값을 사전에 설정한 임계값과 비교하여 그보다 크면 사건 발생으로, 그렇지 않으면 사건 미발생으로 분류 예를 들면, 임계값을 0.5로 했을 때 도출된 예측확률이 0.5보다 크면 사건이 발생하고 0.5보다 작으면 사건이 발생하지 않는 것으로 예측 나이브베이즈는 예측변수 가운데 하나라도 0의 확률을 가지고 있으면 전체의 조건부 확률이 0이 된다. 해결책 : 라플라스 추정치를 이용하여 해결 라플라스 추정치 : 훈련 데이터의 각 빈도값에 작은 값을 더한다. 라플라스 추정치는 1로 설정되며, 이는 모든..
-
API의 개념 뿌수기! (필수 API 개념 기술)Engineering WIKI/Docs 2021. 1. 17. 21:25
API = 키보드 프로그램들 간의 소통 방법 API 역할 API는 서버와 DB의 출입구 역할 데이터베이스에는 소중한 정보들이 저장되고, 누구나 DB에 속하는것을 막아야 함. API는 이를 방지하기 위해 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해줍니다. API는 애플리케이션과 기기가 원할하게 통신할 수 있게 해 준다. 여기서 애플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플이나 프로그램을 말합니다. API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 합니다. API는 모든 접속을 표준화한다. API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있습니다. 쉽게 말해, API는 범용 플러그..