본문 바로가기
728x90

작업형119

[빅데이터분석기사 실기][작업형1] 상관관계 구하기 상관계수는 두 변수 간의 선형 관계의 강도와 방향을 측정하는 통계량입니다. 상관계수는 -1에서 1 사이의 값을 가지며, 값의 절대값이 클수록 강한 선형 관계를 나타냅니다. 상관계수가 1에 가까울수록 양의 선형 관계를, -1에 가까울수록 음의 선형 관계를 나타냅니다. 0에 가까울수록 선형 관계가 약하거나 없음을 의미합니다. 아래 코드에서 상관관계가 높은 변수를 찾을 때는 단순히 상관계수의 크고 작음이 아니라, 상관계수의 절대값을 기준으로 강한 상관관계를 가지는지 판단해야 합니다. import pandas as pd from sklearn.datasets import load_boston # Boston House Prices 데이터셋 로드 data = load_boston() df = pd.DataFram.. 2023. 5. 28.
[빅데이터분석기사 실기][작업형1] 표준화와 정규화 표준화(Standardization)와 정규화(Normalization)는 데이터 전처리 기법으로, 데이터를 일정한 기준에 맞추어 조정하는 방법입니다. 표준화(Standardization) 표준화는 데이터의 평균을 0으로, 표준편차를 1로 만들어 데이터를 정규분포(평균 0, 표준편차 1)에 맞게 변환하는 방법입니다. 표준화를 수행하면 데이터의 범위를 넓히거나 축소하지 않고, 데이터의 상대적인 위치를 파악할 수 있습니다. 주로 데이터가 정규분포를 따를 때 사용됩니다. 정규화(Normalization) 정규화는 데이터의 범위를 0과 1 사이로 변환하여 데이터의 상대적인 크기를 비교할 수 있도록 만드는 방법입니다. 정규화는 최소값과 최댓값을 이용하여 데이터를 변환하며, 최솟값은 0, 최댓값은 1이 되도록 스케.. 2023. 5. 27.
[빅데이터분석기사 실기][작업형1] 누적합 계산 및 결측치 채우기(cumsum, bfill) 누적합(Cumulative Sum)은 데이터의 원소들을 순차적으로 더해가며 누적된 합을 계산하는 연산입니다. 이전까지의 모든 데이터 값을 현재 데이터 값과 함께 더하여 누적된 결과를 생성합니다. 누적합은 데이터의 추이와 누적적인 변화를 파악하는 데 유용하며, 데이터의 누적적인 변화를 시각화하거나 특정 시점까지의 누적된 값을 계산하는 데 사용될 수 있습니다. 누적합은 다양한 분야에서 사용됩니다. 다음과 같이 몇 가지 예시가 있습니다. 금융 분야: 주식 가격, 지수 등의 시계열 데이터에서 누적합을 계산하여 총 수익률, 누적 수익 등을 파악할 수 있습니다. 판매 분야: 매출 데이터에서 일별, 월별, 연도별 누적 매출을 계산하여 총 매출액 추이를 확인할 수 있습니다. 생산 분야: 생산량이나 생산 비용 데이터에서.. 2023. 5. 27.
[빅데이터분석기사 실기][작업형1] 값을 대체하기 (replace) 이번에는 pandas의 replace 함수를 이용하여 값을 대체해 보겠습니다. 딕셔너리를 이용해서 값을 여러개 대체할 수도 있고, 단일 값을 변경하는 경우에는 변경전, 후 값만 입력하여 변경도 가능합니다. import pandas as pd # 예제 데이터프레임 생성 data = {'A': [1, 2, 3, 4, 5], 'B': ['apple', 'banana', 'apple', 'cherry', 'banana']} df = pd.DataFrame(data) # 'B' 컬럼의 값을 변경하기 전 출력 print("Original DataFrame:") print(df) # 'B' 컬럼의 값을 변경하여 새로운 데이터프레임 생성 df_replaced = df.replace({'apple': 'orange', .. 2023. 5. 26.
[빅데이터분석기사 실기][작업형1] 분위수 구하고 값을 대체하기 (np.quantile(), np.clip()) 분위수(Quantiles)는 데이터를 일정한 비율로 나누는 기준점을 의미합니다. 주어진 데이터의 분포를 파악하고, 데이터의 상대적 위치를 알아보기 위해 사용됩니다. 일반적으로 백분위수(Percentiles)를 많이 사용합니다. 백분위수는 데이터를 100개의 동등한 부분으로 나눈 것으로, 데이터의 분포를 1부터 100까지의 백분위로 표현할 수 있습니다. 그리고 이런 분위수 기준으로 상, 하위값을 분위수로 대체하는 방식으로 이상치를 제거하기도 합니다. 아래는 이에 대한 간단한 예제입니다. import numpy as np # 예제 데이터 배열 생성 data = np.array([10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100]) # 상위 75% 값을 구하는 예제 uppe.. 2023. 5. 26.
[빅데이터분석기사 실기][작업형1] 결측치 제거 및 그룹화 앞서 결측치를 대체하는 방법을 알아보았습니다. 이번에는 dropna()를 사용하여 결측치가 존재하는 행을 삭제하는 방법입니다. 그리고, groupby로 데이터를 그룹화하고, index가 2개 이상인 경우에 값을 선택하는 방법까지 알아보겠습니다. import pandas as pd #샘플 데이터 만들기 df = pd.DataFrame({'value': [1, 2, None, 4, 5, 6], 'ind1': ['a', 'a', 'b', 'b', 'c', 'c'], 'ind2': [1, 2, 1, 2, 1, 2]}) #결측치 확인 df.isna().sum() #결측치 제거 df[~df['value'].isna()] #groupby로 멀티인덱스 만들기 df_grp=df.groupby(['ind1','ind2'].. 2023. 5. 24.
[빅데이터분석기사 실기][작업형1] 왜도와 첨도, np.log1p() 왜도 및 첨도는 데이터 세트의 형태 및 분포에 대한 정보를 제공하는 통계값입니다. 왜도(Skewness): 왜도는 분포의 비대칭성을 측정합니다. 양의 왜도는 분포의 꼬리가 오른쪽으로 치우쳐 있음을 의미하고 음의 왜도는 꼬리가 왼쪽으로 치우쳐 있음을 의미합니다. 왜도 값 0은 완벽하게 대칭적인 분포를 나타냅니다. 첨도(Kurtosis): 첨도는 분포의 정점 또는 평탄도를 측정합니다. 정규 분포와 비교하여 데이터에 두꺼운 꼬리(leptokurtic) 또는 가벼운 꼬리(platykurtic)가 있는지 여부를 알려줍니다. 첨도 값 3은 정규 분포를 나타냅니다. 양의 첨도는 꼬리가 두꺼울수록 더 뾰족한 분포를 나타내고, 음의 첨도는 꼬리가 더 가늘고 평평한 분포를 나타냅니다. 데이터 세트의 로그를 취할 때 왜도 .. 2023. 5. 24.
[빅데이터분석기사 실기][작업형1] map()을 이용하여 결측치 처리하기 Python에는 데이터의 결측치(누락된 값)를 처리하는 여러 가지 방법이 있습니다. 일반적으로 사용되는 몇 가지 방법은 다음과 같습니다. 결측치 삭제: dropna() 함수를 사용하여 결측치가 포함된 행 또는 열을 제거할 수 있습니다. axis 매개 변수를 지정하면 결측치가 있거나 특정 조건을 충족하는 행(axis=0) 또는 열(axis=1)을 삭제할 수 있습니다. 결측치 채우기: fillna() 함수를 사용하여 결측치를 지정된 값으로 채울 수 있습니다. 결측치를 상수 값으로 채우거나 전방 채우기(ffill), 후방 채우기(bfill) 또는 보간과 같은 다양한 방법을 사용하여 인접 값을 기반으로 누락된 값을 채우도록 선택할 수 있습니다. 결측값 대치: 대치에는 다른 관찰된 값을 기반으로 결측값을 추정하는.. 2023. 5. 24.
[빅데이터분석기사 실기][작업형1] 반올림, 올림, 내림, 버림의 차이 Python에서 round, floor, ceil 및 trunc 함수의 차이점을 짚고 넘어가겠습니다. numpy와 math 라이브러리를 사용할 수 있는데, 사용방법은 비슷합니다. 여기서는 양수와 음수를 모두 비교하기 위해 numpy를 사용했습니다. round: round() 함수는 숫자를 지정된 소수 자릿수로 반올림하는 데 사용됩니다. 기본적으로 가장 가까운 짝수로 반올림됩니다. 예를 들어 round(3.7)은 4로 반올림되고 round(3.2)는 3으로 반올림됩니다. ceil: 역시 수학 모듈에 있는 ceil() 함수는 주어진 숫자보다 크거나 같은 가장 작은 정수를 반환합니다. 항상 반올림합니다. 예를 들어 math.ceil(3.7)은 4를 생성하고 math.ceil(3.2)도 4를 생성합니다. flo.. 2023. 5. 23.
728x90