Temperature and Ice Cream Sales
A public dataset relating temperature and ice cream revenue
www.kaggle.com
데이터 라이선스 정보
프로젝트의 목표는 온도와 아이스크림 판매 이익의 상관관계를 선형 회귀 모델로 분석하는 것입니다.
라이브러리 및 데이터 불러오기
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.metrics import mean_squared_error
file_name = 'C:/kaggle/Ice Cream Sales - temperatures.csv'
df = pd.read_csv(file_name)

분석할 데이터의 칼럼에는 'Temerature'와 'Ice Cream Profits'의 데이터가 입력되어 있으며 각각 정수형, 실수형으로 기록됩니다. 결측치가 없으며 데이터형식 혼합형이 아니기 때문에 별도의 전처리 작업은 진행하지 않습니다.

시작점이 동일한 기울기가 1인 y = x 그래프 (정확히는 y = x -25.83 그래프)와 비교해 봅니다.

전체적으로 기울기가 1보다 크고 눈이 띄는 아웃라이어가 없음을 확인할 수 있습니다.
전처리 작업
결측치, 아웃라이어가 없으며 혼합형 데이터가 아닌 연속형 데이터만 있기 때문에 훈련 셋과 시험 셋을 나누는 것 외의 전처리 작업은 하지 않겠습니다.
X = df.drop('Ice Cream Profits',axis=1) # 독립변수 (온도)
y = df['Ice Cream Profits'] # 종속변수 (이윤)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=100)
# 2 : 8 비율로 나누기
모델링 : 선형 회귀 분석
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test) # 예측값
모델 평가
- 실제값과 예측값 보기

- 산점도 분석
한글을 임포트 하지 않고 캐글 작업물이기 때문에 칼럼명을 영어로 변경한 후 진행 했습니다.

y = x 그래프에 얼마나 가까운지에 따라 모델이 적절한지 확인할 수 있습니다.

- RMSE 평가
루트 평균 제곱오차로 MSE에 루트를 씌워 계산합니다. 0에 가까울수록 좋은 지표이지만 절대적인 지표가 아닌 상대적인 지표입니다.

값이 작고 데이터 자체가 선형 회귀 분석에 적합한 모델이었으므로 RMSE는 여기까지 계산하고 R2 값을 확인해 줍니다.

역시나 1에 가까운 0.975이기 때문에 다른 알고리즘을 사용해야 할 정도로 문제가 있는 알고리즘이 아닙니다.
상관관계 분석

모델링을 통해 다음과 같은 상관관계와 선형 회귀 분석에서 반환한 그래프의 값을 알 수 있습니다.
계수가 1.188132로 온도가 1이 증가할수록 아이스크림의 판매 이윤은 약 1.188132 정도라는 것을 확인할 수 있습니다.
또한 y절편이 -33.41477 정도 이므로 일차함수는 다음과 같습니다.

정리
우리나라의 자료가 아니기 때문에 도 씨가 아니라 화씨일 것이고, 아이스크림의 온도가 아니라 외부 온도라고 보면 설득력 있는 자료입니다. (위의 데이터는 구글 데이터 분석을 위한 자료입니다.)
데이터 자체가 결측치와 혼합형 데이터가 없기 때문에 전처리 작업을 하지 않았고, 아웃라이어가 없기 때문에 무난히 선형 회귀 분석 모델을 사용할 수 있었습니다.
오버 피팅은 고려하지 않은 모델입니다.
구글 이메일 : lko991111@gmail.com
'Data Science > Kaggle 작업' 카테고리의 다른 글
| [데이터 시각화] US Stock Market 2020 to 2024 (피벗, 차트) (0) | 2025.11.20 |
|---|---|
| [데이터 시각화] Job placement dataset (피벗, 차트) (0) | 2025.11.19 |
