Data Analysis

Python 45

[머신러닝] Xgboost

Xgboost Distributed(Deep) Machine Learning Community(DMLC) group 내 Tianqi Chen에 의한 연구 프로젝트로 시작. the Higgs Machine Learning Challenge 라는 Kaggle challenge에서 우승 solution으로 선정되어 알려졌고, 이후 xgboost를 이용하여 다른 Kaggle 경쟁에서도 다수 우승 (2015년동안 29개 Kaggle challenge 에서 17개의 solution 이 XGBoost를 사용) 배깅과 부스팅 알고리즘 비교 - xgboost는 부스팅 방식을 기반으로 만들어진 모델 - 분류하기 어려운 특정 영역에 초점을 두고 정확도를 높이는 알고리즘 - 높은 정확도가 가장 큰 강점 배깅과 동일하게 복원 ..

[머신러닝] 연관분석(Association Analysis)

연관성 규칙(Association Rules) – “어떤 항목이 어떤 항목을 동반하는가”에 대한 연구 – 거래 데이터베이스로부터 구매항목들 사이의 연관성에 대한 규칙을 추론하는 방법 – 하나의 거래나 사건에 포함된 항목 간의 관련성을 파악하여 둘 이상의 항목들로 구성된 연관성 규칙을 도출하는 탐색적인 분석 방법 연관분석 특징 - 사건의 연관규칙을 찾는 데이터마이닝 기법 - y변수가 없으며, 비지도학습에 의한 패턴 분석 방법 - 거래 사실이 기록된 트랜잭션(Transaction)형식의 데이터 셋을 이용 - 사건과 사건 간의 연관성을 찾는 방법 - 예) 기저귀와 맥주(Diapers vs. Beer) 이야기: Karen Heath는 1992년 맥주와 기저귀의 상관관계 발견 - 지지도(제품의 동시 구매패턴), ..

[머신러닝] 앙상블 (Ensemble)

앙상블 모형 - 앙상블(ensemble) 모형은 여러 개의 분류모형에 의한 결과를 종합하여 분류의 정확도를 높이 는 방법이다. - 이는 적절한 표본추출법으로 데이터에서 여러 개의 훈련용 데이터 집합을 만들어 각각의 데이터 집합에서 하나의 분류기를 만들어 앙상블 하는 방법이다. 즉, 새로운 자료에 대해 분류기 예측값들의 가중 투표(weighted vote)를 통해 분류를 수행한다. - 데이터를 조절하는 가장 대표적인 방법에는 배깅(bagging)과 부스팅(boosting)이 있다. 랜덤포리스트(random forest) 방법은 배깅의 개념과 속성(또는 변수)의 임의 선택(random selection)을 결합한 앙상블 기법이다. 앙상블 방법은 개별 모형에 비해 다음의 장점을 가진다. - 평균을 취함으로써 ..

[머신러닝] 군집분석 (Cluster Analysis)

군집분석 - 군집분석(cluster analysis)은 각 개체에 대해 관측된 여러 개의 변수 값들로부터 n개의 개체를 유사한 성격을 가지는 몇 개의 군집으로 집단화하고, 형성된 군집들의 특성을 파악하여 군집들 사이의 관계를 분석하는 다변량분석 기법이다. - 군집화의 방법에는 계층적군집, 분리(partitioning)군집, 밀도-기반군집, 모형-기반군집, 격자-기반군집, 커널-기반군집, 코호넨군집, 고차원데이터를 위한 방법 등이 있다. 1 계층적군집 - 계층적군집(hierarchical clustering)은 가장 유사한 개체를 묶어 나가는 과정을 반복하여 원하는 갯수의 군집을 형성하는 방법이다. 보통 계통도 또는 덴드로그램(dendrogram)의 형 태로 결과가 주어지며 각 개체는 하나의 군집에만 속하..

[머신러닝] 인공신경망

인공신경망 - 인간의 두뇌구조를 모방한 지도학습 방법 - 여러 개의 뉴런들을 상호 연결하여 입력에 상응하는 최적의 출력 값을 예측 - 분류와 예측을 위해 사용되는 모형 - 신경망의 학습 및 기억 특성들은 인간의 학습과 기억의 특성을 닮았고 특정사건으로부터 일반화하는 능력도 또한 갖고 있다. (문자, 음성, 이미지 인식, 증권시장 예측, 날씨 예보 등 다양한 분야에서 활용) 신경망 구조와 개념 - 입력계층 : 각 입력변수에 대응되는 노드 (노드의 수=입력변수의 개수) - 은닉계층 : 입력층으로부터 전달되는 변수 값들의 선형결합을 비선형함수 로 처리하여 출력층 또는 다른 은닉층에 전달 - 출력계층 : 목표변수에 대응되는 노드 (분류모형 : 그룹의 수 만큼 생성) SLP (Single-layer percept..

[Python] 순서자료구조 (Dict, Tuple)

dict - { } 형태로 표현 1. 사전형 집합 2. key 값 이용 key 값 1. 문자형과 숫자형 혼용 가능 2. 중복될 수 없음 but 수정 가능 => 만일 중복된 key가 있으면 새로 넣어준 key의 value가 원래 있던 value 대체 dict 생성 방법 1 dict_1 = dict() type(dict_1) # dict_1 # {} dict_1[0] = 1 dict_1 # {0: 1} 1. " 변수 = dict() "를 통해 dict 형태의 변수/ 집합 생성 2. 변수에 자료 값 저장 " dict[key 값] = value " key & value dictt = dict() dictt['key'] = 'value1','value2','value3' dictt # {'key': ('value..

[Python] 순서자료구조 (List, Set)

선형 자료구조 자료들이 일렬로 나열되어 선을 이룸 1. 집합에 순서가 있다 2. indexing 가능 " list[index], tuple[index] " 3. list, tuple 비선형 자료구조 자료들이 위치를 갖지 않고 bucket에 저장됨 1. 위치를 갖지 않기 때문에 순서가 없음 2. indexing 할 수 없음 3. look up 가능 " value in set, value in dict " 4. 중복값을 허용하지 않음 5. set, dict 비선형 자료구조를 사용할 경우 1. 중복된 값을 골라내야 할 때 2. 빠른 look up 해야 할 때 3. 자료의 순서가 상관없을 때 "순서가 있는 집합: list & tuple" List예시 list = [1, 2, 3, 4] list # [1, 2, ..

[Python] 반복문(while)

while 반복문 while 반복문은 조건식으로만 동작하며, 반복할 코드 안에 조건식에 영향을 주는 변화식이 들어간다 i = 0 # 초기식 while i < 100: # while 조건식 print('Hello, world!') # 반복할 코드 i += 1 # 변화식 다음은 while 반복문의 실행 과정입니다. 먼저 초기식부터 시작하여 조건식을 판별합니다. 이때 조건식이 참(True)이면 반복할 코드와 변화식을 함께 수행합니다. 그리고 다시 조건식을 판별하여 참(True)이면 코드를 계속 반복하고, 거짓(False)이면 반복문을 끝낸 뒤 다음 코드를 실행합니다. 여기서는 조건식 → 반복할 코드 및 변화식 → 조건식으로 순환하는 부분이 루프(loop)입니다. while 반복문 사용하기 다음과 같이 whil..

[Python] for문을 활용한 간단한 예제

예제1) 반복문 for를 통해서 1부터 100까지 더해보자. result = 0 for a in range(1,101): #1 ~ 100 result = result + a print(result) 이런식으로 ragne를 이용해서 1~100까지 숫자를 a로 돌리고 result에 계속 더해주는 방식으로 구현할 수 있습니다. 출력 결과는 5050이 나옵니다. 예제2) 반복문 for와 continue를 통해서 1부터 100까지 리스트가 있을때 홀수만 더해보자. 일단 홀수인지 짝수인지는 2로 나누었을때 나머지를 통해서 알 수 있습니다. 어떤 수를 2로 나누었을때 나머지가 1이라면 그 어떤수는 홀 수 입니다. 파이썬에서 어떤수 x를 나누어서 나머지를 구하는 기호는 "%" 입니다. 일단 우리는 이런식으로 if를 이..