블로그 이미지
황상두

카테고리

기타 (101)
알고리즘(백준) (3)
임베디드 보안 (7)
windows internal (22)
공부 (16)
전공 스터디 (27)
과제 (8)
영어 (6)
기록물 (6)
Total
Today
Yesterday

달력

« » 2024.11
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

공지사항

태그목록

최근에 올라온 글

프로그래밍 R 포스팅 사이트

(의사결정트리)

http://pubdata.tistory.com/27

분류트리 - 유한한 범주내에서 나온다.(의사결정트리는 분류트리이다.)

회귀트리 - 실수형태로 나온다.(무한하며 수학적인 느낌이 강하다.)



머신러닝, R, 인공지능 , 데이터 마이닝 등등 많은 내용이 포스팅 되어있는 사이트이다.

(랜덤 포레스트)

http://blog.daum.net/_blog/BlogTypeView.do?blogid=0QoPO&articleno=705


앙상블 학습법이란?

http://blog.daum.net/_blog/BlogTypeView.do?blogid=0QoPO&articleno=705

쉽게 설명하면 다양한 알고리즘을 사용하여 예측하는 것을 의미한다.


Overfit(과적합)

새로운 데이터에대해서 적응을 잘하지 못하는 것을 의미!


out of bag(OOB)

ex) n개의 공을 n번 복원추출을 하자. 그렇게 해서 1번이라도 뽑힌 공을 training으로 사용하고 뽑히지 않은 공을 test자료로 사용한다,


OOB(out of bag)를 사용해서 표본에서 중복을 허용하여 같은 크기의 부 표본을 추출하여 training 자료로 하고 나머지 선택되지 않은 개체들은 test 자료로 한다. 

training자료를 트리 알고리즘에 넣는데 각 노드에서 대략 랜덤으로 절반정도의 변수만 추출하여 쓰고 나무(트리)를 최대한 크게 만든다. (다양한 트리를 만드는데 최대한 다르게 만드려고)

- why? 유사성을 피하기 위해(독립, 다양성 증가), 다른 나무를 만들어 나무를 만들때마다 다른 절반의 변수들이 사용된다. )


앞 단계를 n번 반복해서 산출된 모형을 통합하여 결론을 voting한다. (여러개 트리에 입력 빈도수 측정)

- 예를 들어 50개의 나무를 만들때, 30대 20으로 만족도가 나온다면(빈도수) -> 1로 판단


데이터가 많은 자료에서 효율적으로 의사결정가능하다. 


트리를 사용하기 때문에 연산속도가 빠르고 변수를 랜덤으로 하기 때문에 각 변수에 대한 중요도를 낼 수 있다. 곧 지니계수를 얼마나 감소시킨 변수가 있는가를 찾아낸다면 변수의 중요도를 알 수 있다

(지니계수를 통해 변수의 중요도 파악가능)

지니계수 = 불평등지수




'전공 스터디 > 기계학습' 카테고리의 다른 글

다양한 회귀분석 간단정리  (0) 2017.02.04
결정트리 학습법  (0) 2017.02.01
나이브 베이즈 예제 손수 해보기!  (0) 2017.02.01
나이브 베이즈  (0) 2017.01.14
인공지능의 역사  (0) 2017.01.14
Posted by 황상두
, |

http://clojure.or.kr/wiki/doku.php?id=study:algorithms:functional_logic_programming


논리형 프로그래밍이란?


기호논리의 원리를 이용한다. 관계를 중요시한다.

학교다닐떄 배우던 명제와 비슷하다.

ex)

전제

a는 c의 아버지다.

c는 d의 아버지다.


알수있는것!

a는 d의 할아버지다.


명령형 언어와 함수 언어에서의 프로그래밍은 기본적으로 절차적 (procedural) 이다. 그것은 프로그래머가 프로그램에 의해 무엇이 성취되는지를 알고 계산이 정확하게 어떻게 수행되는지를 컴퓨터에게 지시하는 것을 의미한다. 다시 말하면, 컴퓨터는 명령을 따르는 간단한 장치로서 취급된다. 계산되는 모든 것은 계산의 모든 세부 사항이 상세히 설명되어야 한다. 어떤 사람은 이런 것이 컴퓨터 프로그래밍을 어렵게 하는 핵심이라고 믿는다.

어떤 비명령형 언어에서의 프로그래밍, 특히 논리 프로그래밍 언어에서의 프로그래밍은 비절차적이다. 이러한 언어에서의 프로그램은 결과가 계산되는 방법을 정확하게 서술하지 않고 결과의 형식을 서술한다. 차이점은 우리가 컴퓨터 시스템이 어쨌든 결과가 얻어지는 방식을 결정한다고 가정하는 것이다. 논리 프로그래밍 언어에 이 능력을 제공하기 위해 필요한 것은 적당한 정보와 원하는 계산 결과를 추론하는 방법을 컴퓨터에게 제공하는 간결한 수단이다. 수렁 해석학은 컴퓨터에 대한 기본 통신 형식을 제공하고, Robinson 에 의해 첫번째로 개발된 증명 방법은 추론 기법을 제공한다


선언형 언어는  해법 정의(HOW)를 하기보다는 무엇(what)을 할 것인지에 중점을 둔다.

즉 우리가 대개 처음 배우는 C언어나 이런언어들은 보통 문제해결을 위해서 코딩을 한 후 주석을 단다.

왜 달까? 문제해결을 위한 해법을 적어 놓은 것을 상대방이 이해하기 쉽게 하기위함이다.



근데 선언형언어 및 논리형 프로그래밍은 결과를 물어보는 방식이다. 즉 애초에 결과를 물어보기때문에 주석이 덜필요하다

생각해보자

ex) 너 남자니? (male(a))

주석을 달필요가 있나?? 애초에 코딩이 질문이기에 필요없다.


'공부 > 프로그래밍' 카테고리의 다른 글

프로그래밍 네이밍 규칙  (0) 2017.12.16
함수형 프로그래밍(?)  (0) 2017.01.14
식과 제어문  (0) 2017.01.14
l-value 와 r-value 차이  (0) 2017.01.13
동적영역과 정적영역의 차이  (0) 2017.01.12
Posted by 황상두
, |

스무딩은 잡음을 제거할 떄 많이 사용한다. 사진을 참고하시라.

예를들어 스무딩값을 10으로 준다고 가정하자.

x축 : 0~10             , 10~20 , 20~30 , 30~40 ....

y축 : 0~10구간 평균, 10~20구간평균...


스무딩값이 작을수록 원본에 가깝다.


'전공 스터디 > Matlab' 카테고리의 다른 글

Matlab 소스코드 개선 및 모듈화  (0) 2017.03.15
Matlab 추가상수(addcoff) 실험결과  (0) 2017.03.06
matlab 코드분석  (0) 2017.02.25
USN이란? + USN 알고리즘  (0) 2017.01.12
FFT알고리즘  (0) 2017.01.04
Posted by 황상두
, |

최근에 달린 댓글

글 보관함