본문 바로가기

Data Analysis7

[Python] 결측치 처리 심화 (groupby, transform 함수) 이번 글에서는 python에서 결측치 처리하는 데 있어서, groupby()와 transform() 함수를 같이 사용하는 방법에 대해 살펴보고자 합니다. 우선 환자들에 대한 체온, 심박수 등 기본적인 정보에 대한 데이터가 있다고 가정하겠습니다. 수행하고 싶은 전처리는 데이터에 결측치가 존재할 때, 해당 결측치를 환자의 평균값으로 대치하는 것입니다. 예를 들어, A 환자의 심박수에 결측치가 존재하게 되는 경우, 해당 데이터는 A 환자의 평균 심박수로 대치되는 것입니다. for 구문을 통해 각 환자별 데이터를 추출하고, 결측치가 존재한다면 환자의 평균값을 계산하여 결측치를 대치할 수도 있습니다. 하지만 더 간단한 코드로 해당 과정을 수행하기를 원했고, 검색하다가 찾은 방법이 groupby()와 transfo.. 2023. 8. 29.
[Python] Configuration 관리 및 사용 이번 글에서는 Python에서 Configuration을 관리하고 사용하는 방법에 대해 살펴볼 예정입니다. Python을 비롯하여 대부분의 프로그래밍 언어를 사용하다 보면, 여러 코드에서 공통적으로 동일한 변수를 사용하게 되고, 변경될 때마다 각 코드에서 수정을 하신 경험이 있으실 겁니다. 이러한 경우에 사용하면 효율적인 것이 configuration을 활용하는 것입니다. 사용 방법에 대해 순서대로 설명하겠습니다. 1. Configuration 파일 생성 및 관리 우선 configuration으로 관리하고자 하는 변수들을 선정해주고, ini 확장자로 각 변수들을 할당해 줍니다. 예시는 아래와 같으며, DB 접속 정보를 configuration으로 관리하는 예시를 보여드리고자 합니다. [DB] DB_HOS.. 2023. 4. 21.
[Python] Python과 PostgreSQL 연동 이번 글에서는 Python과 PostgreSQL을 연동하여 DB에서 테이블을 불러오고 데이터 프레임 형태로 바꾸는 과정을 살펴보고자 합니다. 우선 terminal이나 conda를 이용하여 'psycopg2' 패키지를 설치해줍니다. 이후 DB 정보를 입력하고, 쿼리를 통해 테이블을 가져온 후 데이터 프레임으로 바꾸는 일반적인 코드는 다음과 같습니다. >>> import psycopg2 >>> import pandas as pd >>> >>> pgdb = psycopg2.connect( >>> host={'localhost' or ip address}, >>> dbname={DB name}, >>> user={User name}, >>> password={Password}, >>> port={Port num.. 2022. 11. 24.
[Dimensionality Reduction] 주성분 분석 (PCA, Principal Components Analysis) - 2 본 글에서는 저번 글에 이어서 유방암 환자 데이터 (Breast Cancer Wisconsin) 데이터를 바탕으로 진행되는 주성분분석 (PCA)의 과정을 살펴볼 것입니다. 저번 글에서는 PCA를 진행하기에 앞서 주성분의 개수를 선택하는 과정을 진행하였고, 여러 방법들을 고려했을 때 유방암 환자 데이터에 대해서는 6개의 주성분으로 차원 축소하는 것이 적절하다고 결정하였습니다. 선택 과정은 해당 글에서 살펴볼 수 있습니다. 전체적인 분석 과정을 다시 요약하면, (1) 원본 데이터, (2) PCA를 적용한 데이터, 각각에 비지도 학습 중 하나인 K-means 군집 분석을 적용하고, K-means를 통해 분류된 양성 여부와 실제 양성 여부 간의 정확도를 측정하여 PCA의 적용이 유의미한지 판단하는 것입니다. 1.. 2022. 10. 31.
[Dimensionality Reduction] 주성분 분석 (PCA, Principal Components Analysis) - 1 본 글에서는 차원 축소 (Dimensionality Reduction) 기법 중, 가장 널리 사용되었던 주성분 분석 (PCA)에 대해 살펴보고자 합니다. PCA의 개념 및 이론에 대해 자세히 살펴보지는 않고, 예제 데이터를 바탕으로 진행되는 분석 과정에 좀 더 집중할 것입니다. 활용한 예제 데이터는 Kaggle 사이트에서 제공되는 유방함 환자 데이터 (Breast Cancer Wisconsin)로, 유방암의 양성 여부, 종양의 반경, 둘레 면적 등의 정보와 각 변수들의 평균, 표준편차, 상위 3개 값의 평균을 포함하고 있어 총 32개의 변수를 가지고 있습니다. 데이터는 총 569개였으며, 분석 툴로는 R을 활용하였습니다. 전체적인 분석 과정을 요약하면, (1) 원본 데이터, (2) PCA를 적용한 데이터.. 2022. 10. 27.
[Imputation] 결측치 대치 방법 저번 글에서는 결측치의 유형 (MCAR, MAR, MNAR)에 대해 작성하였는데, 이번 글에서는 결측치를 처리하는 방법, 즉 결측치 대치(Imputation)에 대해 알아보고자 합니다. 결측치 유형에 대해 궁금하시다면, 이 링크를 참고해주시면 됩니다. 물론 결측치가 많지 않을 경우에는 추가적인 전처리를 진행하지 않고 그대로 활용하거나 아예 제거하는 방법도 있지만, 대부분의 경우에는 결측치를 다른 값으로 대치하여 분석에 활용하게 됩니다. 1. Simple Imputation (단순 대치법) Simple Imputation (단순 대치법)은 해당 열의 결측치들을 특정 하나의 값으로 대치하는 방법을 의미합니다. 결측치를 제외한 값들의 1) 평균(mean), 2) 중앙값(median), 3) 최빈값(mode) .. 2022. 10. 24.
[Imputation] 결측치(Missing Value) 관련 정리 이번 글에서는 데이터 분석 관련 프로젝트를 진행하다보면 거의 직면할 수 밖에 없는 결측치에 대해 다뤄볼 것입다. 결측치를 많이 포함하는 데이터로 머신러닝/딥러닝 모델을 학습시키게 되면, 결과를 신뢰할 수 없을 뿐만 아니라 정확도에도 큰 영향을 미치게 됩니다. 따라서 분석을 하기 이전에 결측치를 제거하거나 대치(Imputation)해줘야 합니다. 이러한 결측치를 처리하는 방법에는 여러가지가 존재하는데, 해당 방법들을 살펴보기 이전에 우선 결측치 자체에 대해 살펴보고자 합니다. 결측치는 다음의 세 가지 유형으로 나뉠 수 있습니다. MCAR (Missing Completely at Random) : 결측치 발생이 완전 무작위 MAR (Missing at Random) : 결측치 발생이 해당 열에서는 무작위이지.. 2022. 10. 21.