AI/실습

119. [Python] [Pandas] 프로그래밍 실습 : (피어슨 상관 계수)CCTV

천재단미 2025. 1. 24. 19:54
728x90
반응형

반응형

 

 
 

 

피어슨 상관 계수와 AI의 관계

 

피어슨 상관 계수(Pearson Correlation Coefficient)는 두 변수 간의 선형 관계를 측정하는 지표로, AI와 데이터 분석에서 다양한 방식으로 활용됩니다. AI에서 피어슨 상관 계수는 데이터의 패턴을 이해하고 예측 모델의 성능을 높이는 데 중요한 역할을 합니다.

 

  1. 데이터 탐색:
    • 변수 간 관계를 이해하는 데 사용됩니다.
    • 예: 고객 나이와 구매 금액의 상관관계 분석으로 관련성 파악
  2. 특성 선택:
    • 중요한 변수를 선별하고 불필요한 변수를 제거합니다.
    • 목표 변수와의 상관계수를 기준으로 특성의 중요도를 평가합니다.
    • 모델의 복잡성을 줄이고 성능을 개선합니다.
  3. 다중공선성 해결:
    • 독립 변수 간 강한 상관관계를 식별합니다.
    • 필요시 상관성이 높은 변수를 제거하거나 차원 축소 기법을 적용합니다.
  4. 지도 학습 모델 개발:
    • 특히 선형 회귀 모델에서 중요합니다.
    • 데이터의 선형성을 평가하여 적절한 모델을 선택합니다.
  5. 신경망 모델:
    • 입력 변수 선택과 데이터 전처리에 활용됩니다.
    • 중요한 특성을 선별하여 학습 효율성을 높입니다.
  6. 모델 평가:
    • 예측값과 실제값 사이의 관계를 분석합니다.
    • 높은 상관계수는 모델의 좋은 예측력을 나타냅니다.

이러한 활용을 통해 모델의 성능을 향상시키고, 과적합을 방지하며, 계산 효율성을 개선할 수 있습니다. 또한, 데이터의 특성을 더 잘 이해하고 모델링 과정을 최적화하는 데 도움이 됩니다.

 

 

 

지난 시간에 이어 상관계수에 관련된 문제 풀이를 해보도록 해보겠습니다. 

 

 

 

 

 

 

 

문제 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를 포함하여 계산하면 포다 효율적으로 가능

 

 

출력

 

 

 


 

 

 

 

결론 ( 정보 분석 ) 

  1. 상위 CCTV 설치 구는 주로 인구 밀도가 높은 지역(예: 강남구, 송파구)으로 나타났습니다.
  2. 특정 지역에서 인구수 대비 CCTV 설치 비율이 낮아 추가 설치가 필요합니다.
  3. 데이터 분석과 시각화를 통해 문제점을 확인하고, 지역별 맞춤형 정책 수립을 제안할 수 있습니다.



 

728x90
반응형
home top bottom
}