달력

11

« 2019/11 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
2019. 11. 28. 10:25

​IBk vs k-means Development/Java



 

IBk vs k-means

·       IBk 분류분석은 k-means 군집분석과 유사합니다. 그래서 IBk 분류분석은 데이터간 거리측정 즉 유사도를 기준으로 군집화를 하는 것까지는 똑같습니다. 그러나 k-means은 군집화까지만 수행하지만 IBk는 더 나아가 군집간에 기준선을 만들어 새로운 데이터가 어느 군집에 분류될지까지 결정합니다.

·       다른 차이점은 k means 군집분석은 군집개수를 수동으로 지정하여 어느정도 군집개수가 적절한지 일일히 실험을 해야 하나, IBk crossvalidate 옵션을 사용하면 적정군집수를 제안해 줍니다.

 

IBk

k-means

군집화 수행 +

군집화된 기준으로 세로운 데이터를 분류

군집화까지만 수행

적정군집수를 제안

군집개수를 수동으로 지정

지도 학습

비지도 학습

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

Number of international phone calls from Belgium, 1950–1973.

연도별로 데이터측정 방법이 달라서 일관된 데이터가 나오지 않고 이상값이 나온 실제 데이터 사례입니다.

 

 


 

 

http://bit.ly/2siIBKI


 

 

 

 

 

 

직접 다운로드

data_outliers.csv

이상값이 존재하는 데이터

data_outliers_remove.arff

이상값을 제거한 데이터

 

 

data_outliers.csv

data_outliers_remove.arff



Posted by codedragon codedragon

댓글을 달아 주세요

2019. 11. 28. 02:00

DB & DBMS Development/Database

 

 

DB & DBMS

 

DB

DBMS

DataBase

Database Management System

데이터베이스

데이터베이스 관리 시스템

데이터의 집합

데이터를 관리하기 위한 시스템

https://codedragon.tistory.com/6837

https://codedragon.tistory.com/4100

 

 


'Development > Database' 카테고리의 다른 글

NoSQL 분류  (0) 2019.12.03
Summary - 무결성 제약 조건의 특성, QUERY 연습  (0) 2019.11.28
DB & DBMS  (0) 2019.11.28
트랜잭션(Transcation)  (0) 2019.11.19
Sample database with test suite  (0) 2019.11.16
SQL(Standard Query Language)  (0) 2019.11.10
Posted by codedragon codedragon

댓글을 달아 주세요



 

 

geopandas installing with pip

·       파이썬 버전 확인

·       운영체제 OS bit 버전 확인

·       whl파일 다운로드

·       whl파일 설치

 

 

 

Step by Step

 

파이썬 버전 확인

C:\CodeLab>python --version

Python 3.6.5

 

C:\CodeLab>

 

 

 

 

운영체제 OS bit 버전 확인

C:\CodeLab>systeminfo | findstr based

시스템 종류:             x64-based PC

 

C:\CodeLab>

 

 

 

 

whl파일 다운로드

https://www.lfd.uci.edu/~gohlke/pythonlibs/#fiona

Fiona1.8.11cp36cp36mwin_amd64.whl

 

https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely

Shapely1.6.4.post2cp36cp36mwin_amd64.whl

 

https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal

GDAL3.0.2cp36cp36mwin_amd64.whl

 

https://bit.ly/34j4x6B

geopandas0.6.2py2.py3noneany.whl

 

 

 

 

 

 

whl파일 설치

 

C:\CodeLab>dir *.whl

 C 드라이브의 볼륨에는 이름이 없습니다.

 볼륨 일련 번호: 70F2-E4B5

 

 C:\CodeLab 디렉터리

 

2019-11-25  오전 08:47           486,546 Fiona-1.8.11-cp36-cp36m-win_amd64.whl

2019-11-25  오전 09:12        34,119,907 GDAL-3.0.2-cp36-cp36m-win_amd64.whl

2019-11-25  오전 08:36           919,996 geopandas-0.6.2-py2.py3-none-any.whl

2019-11-25  오전 09:11           635,386 Shapely-1.6.4.post2-cp36-cp36m-win_amd64.whl

               4 파일          36,161,835 바이트

               0 디렉터리  12,584,366,080 바이트 남음

 

C:\CodeLab>

 

 

 

pyproj , shapely, GDAL, Fiona, geopandas 순서로 설치해 주어야 Error 발생하지 않습니다.

 

install pyproj

C:\CodeLab>pip install pyproj

Collecting pyproj

  Using cached https://files.pythonhosted.org/packages/0d/99/8d3a138e5ef78b6e8b6f754d79046701ab18af6f1411c9cfcef5c6432f61/pyproj-2.4.1-cp36-cp36m-win_amd64.whl

Installing collected packages: pyproj

Successfully installed pyproj-2.4.1

 

C:\CodeLab>

 

install Shapely

C:\CodeLab>pip install Shapely-1.6.4.post2-cp36-cp36m-win_amd64.whl

Processing c:\codelab\shapely-1.6.4.post2-cp36-cp36m-win_amd64.whl

Installing collected packages: Shapely

Successfully installed Shapely-1.6.4.post2

 

C:\CodeLab>

 

 

install GDAL

C:\CodeLab>pip install GDAL-3.0.2-cp36-cp36m-win_amd64.whl

Processing c:\codelab\gdal-3.0.2-cp36-cp36m-win_amd64.whl

Installing collected packages: GDAL

Successfully installed GDAL-3.0.2

 

C:\CodeLab>

 

 

install Fiona

C:\CodeLab>pip install Fiona-1.8.11-cp36-cp36m-win_amd64.whl

Processing c:\codelab\fiona-1.8.11-cp36-cp36m-win_amd64.whl

Requirement already satisfied: click-plugins>=1.0 in c:\python\python36\lib\site-packages (from Fiona==1.8.11) (1.1.1)

Requirement already satisfied: six>=1.7 in c:\python\python36\lib\site-packages (from Fiona==1.8.11) (1.11.0)

Requirement already satisfied: click>=4.0 in c:\python\python36\lib\site-packages (from Fiona==1.8.11) (7.0)

Requirement already satisfied: munch in c:\python\python36\lib\site-packages (from Fiona==1.8.11) (2.5.0)

Requirement already satisfied: cligj>=0.5 in c:\python\python36\lib\site-packages (from Fiona==1.8.11) (0.5.0)

Requirement already satisfied: gdal~=3.0.2 in c:\python\python36\lib\site-packages (from Fiona==1.8.11) (3.0.2)

Requirement already satisfied: attrs>=17 in c:\python\python36\lib\site-packages (from Fiona==1.8.11) (19.3.0)

Installing collected packages: Fiona

Successfully installed Fiona-1.8.11

 

C:\CodeLab>

 

 

install geopandas

C:\CodeLab>pip install geopandas-0.6.2-py2.py3-none-any.whl

Processing c:\codelab\geopandas-0.6.2-py2.py3-none-any.whl

Requirement already satisfied: shapely in c:\python\python36\lib\site-packages (from geopandas==0.6.2) (1.6.4.post2)

Requirement already satisfied: pyproj in c:\python\python36\lib\site-packages (from geopandas==0.6.2) (2.4.1)

Requirement already satisfied: fiona in c:\python\python36\lib\site-packages (from geopandas==0.6.2) (1.8.11)

Requirement already satisfied: pandas>=0.23.0 in c:\python\python36\lib\site-packages (from geopandas==0.6.2) (0.23.0)

Requirement already satisfied: cligj>=0.5 in c:\python\python36\lib\site-packages (from fiona->geopandas==0.6.2) (0.5.0)

Requirement already satisfied: click>=4.0 in c:\python\python36\lib\site-packages (from fiona->geopandas==0.6.2) (7.0)

Requirement already satisfied: attrs>=17 in c:\python\python36\lib\site-packages (from fiona->geopandas==0.6.2) (19.3.0)

Requirement already satisfied: gdal~=3.0.2 in c:\python\python36\lib\site-packages (from fiona->geopandas==0.6.2) (3.0.2)

Requirement already satisfied: six>=1.7 in c:\python\python36\lib\site-packages (from fiona->geopandas==0.6.2) (1.11.0)

Requirement already satisfied: munch in c:\python\python36\lib\site-packages (from fiona->geopandas==0.6.2) (2.5.0)

Requirement already satisfied: click-plugins>=1.0 in c:\python\python36\lib\site-packages (from fiona->geopandas==0.6.2) (1.1.1)

Requirement already satisfied: pytz>=2011k in c:\python\python36\lib\site-packages (from pandas>=0.23.0->geopandas==0.6.2) (2018.4)

Requirement already satisfied: numpy>=1.9.0 in c:\python\python36\lib\site-packages (from pandas>=0.23.0->geopandas==0.6.2) (1.14.4)

Requirement already satisfied: python-dateutil>=2.5.0 in c:\python\python36\lib\site-packages (from pandas>=0.23.0->geopandas==0.6.2) (2.7.3)

Installing collected packages: geopandas

Successfully installed geopandas-0.6.2

 

C:\CodeLab>

 

 

 

 

 

 

 

http://geopandas.org/install.html

https://pypi.org/project/geopandas/0.2.1/

https://pypi.org/project/Shapely/

https://pypi.org/project/GDAL/

https://pypi.org/project/pyproj/

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

스레드의 동기화 문제

스레드의 동기화 문제는 다중 스레드일 때 발생가능하며 여러 스레드가 동시에 실행 될 때 2개 이상의 스레드가 동일한 데이터에 접근하여 작업할 경우 문제가 발생할 수 있습니다.

그러므로, 하나의 스레드가 조작하고 있는 공유자원(변수, 데이터)를 다른 스레드가 조작하지 못하도록 하기 위해서 동기화가 필요합니다.

 

동기화 문제 발생


 

 

동기화 처리


 

 

 

Synchronization(동기화)

·       임계영역(Critical Section)에서 스레드들이 순서를 갖춰 자원을 사용하게 하는 것을 동기화하고 합니다.

·       임계영역이란 멀티 스레드에 의해 공유자원이 서로 참조될 수 있는 코드의 범위를 말합니다.

·       , 한 쓰레드가 작업중 다른 쓰레드에 의해 간섭을 받지 못하도록 막는 것을 쓰레드의 동기화하고 합니다.

·       멀티 스레드 프로그램에서 임계영역을 제대로 처리하지 못 하는 경우 심각한 문제가 발생할 수 있습니다.

·       이러한 문제 상황을 해결하는 방법이 동기화를 이용하는 것입니다. 그래서 하나의 자원을 한번에 하나의 스레드만 사용하도록 하는 기술입니다.

·       동기화 메소드를 구현하기 위해서는 synchronized 키워드를 사용하여야 합니다.

·       동기화 메소드를 스레드가 호출할 경우 이미 접근한 스레드가 작업을 완료할 때까지 기다려야 접근할 수 있습니다.

 

·       동기화를 처리하기 위해 모든 객체에 락(lock)을 포함 시켰습니다.

·       (lock)이란 공유 객체에 여러 스레드가 동시에 접근하지 못하도록 하기 위한 것으로 모든 객체가 힙 영역에 생성될 때 자동으로 만들어 집니다.

 

 

 

synchronized 흐름도


 

 

 

Thread 관련 용어

구분

설명

공정

(fairness)

여러 개의 스레드가 하나의 컴퓨팅 자원을 사용하기 위해 동시에 접근하는 프로그램을 작성할 경우 모든 스레드는 공정하게 그 자원을 사용할 수 있도록 해 주어야 합니다.

기아상태

(starvation)

하나 또는 그 이상의 스레드가 자원을 얻기 위해 Blocked 상태에 있고, 그 자원을 얻을 수 없게 되면 다른 작업을 못하는 상태를 말합니다.

교착상태

(deadlock)

두 개 이상의 스레드가 만족하지 못하는 상태로 계속 기다릴 때 발생합니다.

경쟁상태(race condition)

여러 쓰레드가 lock(제어권)을 얻기 위해 서로 경쟁하는 상태를 말합니다.

 

 

 

Thread를 사용할 경우 주의

·       가급적 공유자원 만들지 말 것.

·       공유자원을 만들 경우 반드시 적절한 방법으로 동기화 할 것.

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

프레임워크(Mock framework)

·         객체를 활용한 테스트는 직접 개발자가 객체를 만들어야 합니다.

·         객체를 만드는 것은 시간 · 노력이 필요합니다.

·         이미 만들어져 있는 프레임워크를 활용하여 쉽게 객체 활용이 가능합니다.

·         해당 라이브러리만 세팅하면 쉽게 객체를 활용 가능

 

 

 

대표적인  프레임워크

·         EasyMock

·         Jmock

·         Mockcpp

·         Googlemock

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

 

워크숍

워크숍은 어떠한 목적을 달성하기 위하여 전문 진행자의 진행 아래 프로젝트의 현업 부서 측과 전산 부서 측의 주요 구성원들이 함께 참여하는 회의이다.

 

 

워크숍 사전준비 사항

워크숍을 통해 달성해야 목표와 구체적인 논의 사항들을 도출하기 위해서 사전 준비가 필요합니다.

 

·         워크숍 과제 선정과 계획 수립

·         참가 대상자 선정

·         참가 대상자에 대한 사전 브리핑 교육 훈련

·         킥오프 모임 수행

·         워크숍 자료 준비

·         설비와 물품 준비

·         워크숍 장소 선정

·         워크숍 기간 선정 프로그램 준비

https://codedragon.tistory.com/9302

 


Posted by codedragon codedragon

댓글을 달아 주세요

2019. 11. 27. 01:00

XML vs CSV Development/Python


 

 

XML vs CSV

CSV 특징입니다.

XML

CSV

이진파일

텍스트파일

데이터 타입 존재

모든값이 문자열

셀의 폰트나 컬러 지정가능

폰트나 컬러 지정가능 불가

여러 개의 워크시트 존재

하나의 워크시트만 존재

셀의 너비와 높이 설정가능

셀의 너비와 높이 설정 불가

병합 가능

병합 없음

이미지, 차트등을 포함

문자열외 포함 불가

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

SQOOP(스쿱)

·         아파치 스쿱

·         하둡의 입력을 파일에서 RDBMS 사용할 있게 해줍니다. RDBMS데이터를 하둡에서 접근할 있게 만들어줍니다.

·         1.4에서 2.x 변경되면서 클라이언트/서버형태로 변경되었습니다.

 

 

http://sqoop.apache.org/


 

http://bit.ly/2sc4AmE

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

릴리즈 노트

·         릴리즈 노트는 조직의 최종 사용자 고객과 정리된 릴리즈 정보를 공유하는 문서입니다.

·         상세 서비스를 포함하여 회사가 제공하는 제품을 만들어 수정, 변경 또는 개선하는 일련의 작업들이며, 릴리즈 정보들이 이러한 문서를 통해 제공됩니다. 정보들은 철저하게 테스트를 진행하고, 개발 팀에서 제공하는 사양에 대해 최종 승인된 문서를 통해 배포됩니다.

·         변경된 소프트웨어의 내용을 정리하여 변경점 파악할 있도록 만든 문서입니다.

·         소프트웨어 버전별로 릴리즈 노트를 작성하여 어느 개발자나 테스트가 확인을 해도 변경된 내용을 있도록 정리 필요합니다.

·         기존 버전 대비 테스트를 의뢰하는 버전의 모든 변경점에 대해서 작성 필요합니다.

·         일반적으로 개발자가 변경 사유, 변경 내용, 변경된 내용 확인 방법 등의 내용을 작성합니다.

 



Posted by codedragon codedragon

댓글을 달아 주세요