피어슨 상관 계수와 AI의 관계
피어슨 상관 계수(Pearson Correlation Coefficient)는 두 변수 간의 선형 관계를 측정하는 지표로, AI와 데이터 분석에서 다양한 방식으로 활용됩니다. AI에서 피어슨 상관 계수는 데이터의 패턴을 이해하고 예측 모델의 성능을 높이는 데 중요한 역할을 합니다.
- 데이터 탐색:
- 변수 간 관계를 이해하는 데 사용됩니다.
- 예: 고객 나이와 구매 금액의 상관관계 분석으로 관련성 파악
- 특성 선택:
- 중요한 변수를 선별하고 불필요한 변수를 제거합니다.
- 목표 변수와의 상관계수를 기준으로 특성의 중요도를 평가합니다.
- 모델의 복잡성을 줄이고 성능을 개선합니다.
- 다중공선성 해결:
- 독립 변수 간 강한 상관관계를 식별합니다.
- 필요시 상관성이 높은 변수를 제거하거나 차원 축소 기법을 적용합니다.
- 지도 학습 모델 개발:
- 특히 선형 회귀 모델에서 중요합니다.
- 데이터의 선형성을 평가하여 적절한 모델을 선택합니다.
- 신경망 모델:
- 입력 변수 선택과 데이터 전처리에 활용됩니다.
- 중요한 특성을 선별하여 학습 효율성을 높입니다.
- 모델 평가:
- 예측값과 실제값 사이의 관계를 분석합니다.
- 높은 상관계수는 모델의 좋은 예측력을 나타냅니다.
이러한 활용을 통해 모델의 성능을 향상시키고, 과적합을 방지하며, 계산 효율성을 개선할 수 있습니다. 또한, 데이터의 특성을 더 잘 이해하고 모델링 과정을 최적화하는 데 도움이 됩니다.
지난 시간에 이어 상관계수에 관련된 문제 풀이를 해보도록 해보겠습니다.
문제 16. 고령자비율 상관관계
CCTV의 갯수와 고령자 비율의 상관관계를 분석하세요.
풀이16.
data_result.head()
# 상관계수 계산 = data_result
data_result[['소계','고령자비율']].corr()
# 산점도 시각화
sb.regplot(data=data_result, x='소계', y='고령자비율')
plt.show()
코드분석
- 기존 문제에서 CCTV와 인구데이터에 대한 상관계수 계산을 하여 data_result '소계' 라는 컬럼을 생성하였습니다.
- 이컬럼을 이용하여 쉽게 풀이를 진행하겠습니다.
- corr()을 사용하여 소계와 인구수 간의 상관계수를 확인합니다.
출력
문제 17. 외국인 비율 상관관계
CCTV의 갯수와 외국인 비율의 상관관계를 분석하세요.
풀이 17.
data_result[['소계','외국인비율']].corr()
sb.regplot(data=data_result, x='소계', y='외국인비율')
plt.show()
출력
문제 18. 인구수 상관관계
CCTV의 갯수와 인구수의 상관관계를 분석하세요.
풀이 18.
data_result[['소계','인구수']].corr()
sb.regplot(data=data_result, x='소계', y='인구수')
plt.show()
출력
문제 19. CCTV의 갯수 bar
각 구의 CCTV의 갯수를 bar로 나타내세요.
pandas dataframe.plot 함수 사용
풀이 19.
data_result.plot()
plt.show()
출력
위와 같은 경우 plot보다는 bar가 더 적합 합니다.
수직(kind = 'bar') 수평 (kind = 'barh')
plt.figure(figsize = (10,10))
data_result['소계'].plot(kind = 'bar')
plt.xticks(rotation = 60)
plt.show()
위와 같이 적합한 plot으로 효율적인 정보 전달이 가능합니다.
문제 20. CCTV의 갯수 큰수로 bar
각 구의 CCTV의 갯수를, 먼저 소팅(큰순)한 후, bar로 나타내세요.
풀이 20.
plt.figure(figsize = (10,10))
data_result['소계'].sort_values(ascending = False).plot(kind = 'bar')
plt.xticks(rotation = 60)
plt.show()
출력
문제 21. CCTV비율 bar
인구 한명당 CCTV의 비율을 계산하고, 이를 각 구별로 CCTV비율이 얼마인지 bar로 나타내세요.
풀이 21.
data_result['1000명당 CCTV갯수'] = data_result['소계']/data_result['인구수']*1000
plt.figure(figsize = (10,10))
data_result['1000명당 CCTV갯수'].sort_values(ascending = False).plot(kind = 'bar')
plt.xticks(rotation = 60)
plt.show()
코드분석
data_result['소계']/data_result['인구수'] : 수치가 적어 수치의 *100 또는 *1000를 포함하여 계산하면 포다 효율적으로 가능
출력
결론 ( 정보 분석 )
- 상위 CCTV 설치 구는 주로 인구 밀도가 높은 지역(예: 강남구, 송파구)으로 나타났습니다.
- 특정 지역에서 인구수 대비 CCTV 설치 비율이 낮아 추가 설치가 필요합니다.
- 데이터 분석과 시각화를 통해 문제점을 확인하고, 지역별 맞춤형 정책 수립을 제안할 수 있습니다.
'AI > 실습' 카테고리의 다른 글
121. [Python] [Pandas] 프로그래밍 실습 : 범죄현장 (1) | 2025.01.25 |
---|---|
120. [Python] [Pandas] 프로그래밍 실습 : 구글맵API 연동 (0) | 2025.01.24 |
118. [Python] [Pandas] 프로그래밍 실습 : CCTV (0) | 2025.01.24 |
117. [Python] [Pandas] 프로그래밍 실습 : 대중교통 (1) | 2025.01.24 |
116. [Python] [Pandas] 프로그래밍 실습 : 기온데이터 분석 (0) | 2025.01.24 |