Python
Pandas concat 함수 응용하기
concat함수는 데이터를 재구조화할 때 가장 많이 사용하는 함수 중 하나일 것이다. 다양한 테이블을 방향에 상관없이 merging할 때 많이 쓰인다. Pandas에 merge라는 메소드가 따로 존재함에도, merge보다 concat함수를 많이 사용한다. merge의 경우 테이블 병합이 2개까지만 이루어지지만, concat의 경우 리스트 형태로 합치기 때문에 더욱 실용적이다. 기본 문법 pd.concat(objs, axis = 0, # 0일 경우 행병합(위아래 합치기) 1일 경우 열병합(좌우로 합치기). Default는 0. join = 'outer', # 'outer'의 경우 outer join, 'inner'의 경우 inner join. Optional. ignore_index = False, # T..
pyodbc를 이용하여 python에서 MSSQL 연결하기
python에서 DB를 연결할 때 주로 SQLite3를 많이 사용하지만, 회사에서 MSSQL을 사용해야 할 일이 생겼다. Python의 SQLAlchemy 툴킷을 이용하면 다양한 형태의 DB에 접근할 수 있다. SQLAlchemy는 쉽게 각 DB의 API를 이용해 Python에서 제어할 수 있게 해주는 ToolKit이라 생각하면 된다. MSSQL 사전 설정하기 MSSQL 홈페이지에서 개발자용 SQL Server를 다운로드한다. https://www.microsoft.com/ko-kr/sql-server/sql-server-downloads Microsoft SQL Server Management Studio를 실행한다. PC 설정 > 시스템 > 정보의 디바이스 이름을 서버 이름으로 설정하고 로그인한다. ..
KNN(K-nearest neighbor) Python으로 구현하기
KNN algorithm KNN 알고리즘은 K-nearest neighbor의 줄인 말로 Classification기법 중 하나이다. 점 A가 어느 집단에 속할 지 결정하는 문제를 상상해보자. 사람이라면 눈으로 보기에 괜찮다 싶을 정도의 구분 선을 그을 수 있겠지만 이와 같은 예시에서 자동화된 분류를 하려면 어떻게 알고리즘을 짜야 할까? 직관적으로 하나의 점에 대해 다른 점들과의 거리를 모두 계산하여 거리가 가장 가까운 집단을 선택하는 방법을 상상할 수 있다. 바로 이것이 KNN algorithm의 핵심 아이디어로 점을 하나씩 선택하여 어느 클래스에 속할 지를 거리 기반으로 계산하여 클래스를 분류한다는 것이다. 알고리즘의 과정 KNN algorithm이 분류를 하는 과정은 다음과 같다. 임의의 점 A에 ..
Autoencoder (keras로 구현하기)
Autoencoder란 특정한 목적에 따라 encoder와 decoder를 통해 입출력을 제어하는 네트워크를 지칭한다. 여기서 특정한 목적이라 하면 대표적으로 차원을 축소하거나 잡음을 제거하는 것 등이 있다. 차원 축소(Dimensionality Reduction) Autoencoder의 대표적인 용도로 차원 축소가 있다. 간단한 예를 들면 큰 이미지 데이터에 대해 우리가 원하는 크기로 줄여 데이터를 출력하고 싶을 때 Autoencoder를 사용하여 차원을 줄일 수 있다. MNIST dataset과 tensorflow keras를 이용하여 차원 축소를 코딩해보자. 데이터 전처리과정(MNIST) with open('dataset/mnist.pickle', 'rb') as f: mnist= pickle.lo..