반응형
어떤 지역의 주택가격을 예측하는 모델을 만들기 위한 데이터를 주피터노트북을 이용하여 분석하는 과정을 알아봅니다. 주어진 houseprice.csv
파일을 사용하여 회귀 분석을 수행하고, 시각화를 포함한 분석 과정을 단계별로 설명드립니다.
1. 데이터 로드 및 기본 정보 확인
먼저, 데이터를 로드하고 기본 정보를 확인합니다.
import pandas as pd
# CSV 파일 경로
file_path = '/mnt/data/houseprice.csv' # 파일 경로를 정확하게 찾아 입력해야 함
# 데이터 로드
df = pd.read_csv(file_path)
# 데이터의 기본 정보 확인
print(df.info())
print(df.describe())
2. 결측치 확인 및 처리
결측치가 있는지 확인하고 처리합니다.
# 결측치 확인
print(df.isnull().sum())
# 결측치가 있다면 적절한 처리 방법 적용 (예: 평균값으로 대체)
df.fillna(df.mean(), inplace=True)
3. 데이터 시각화
데이터 분포를 시각화하여 이해를 돕습니다.
import matplotlib.pyplot as plt
import seaborn as sns
# 각 변수의 히스토그램
df.hist(bins=30, figsize=(15, 10))
plt.show()
# 상관관계 히트맵
plt.figure(figsize=(10, 8))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()
4. 회귀 분석 모델 생성
회귀 분석을 통해 주택가격을 예측하는 모델을 만듭니다.
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 특성과 타겟 변수 분리
X = df[['tax', 'ground', 'floor', 'year']]
y = df['price']
# 데이터셋 분리 (훈련 셋과 테스트 셋)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 회귀 모델 학습
model = LinearRegression()
model.fit(X_train, y_train)
# 예측
y_pred = model.predict(X_test)
# 성능 평가
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f'Mean Squared Error: {mse}')
print(f'R2 Score: {r2}')
5. 결과 시각화
예측 결과와 실제 값을 비교하여 시각화합니다.
plt.figure(figsize=(10, 6))
plt.scatter(y_test, y_pred, alpha=0.3)
plt.xlabel('Actual Prices')
plt.ylabel('Predicted Prices')
plt.title('Actual vs Predicted Prices')
plt.plot([min(y_test), max(y_test)], [min(y_test), max(y_test)], color='red', linewidth=2)
plt.show()
'통계데이터과학과' 카테고리의 다른 글
[데이터] 데이터 관련 자격증 (0) | 2024.07.02 |
---|---|
[주피터 노트북] 어떤 지역의 주택 가격 예측하는 모델 만들기 (0) | 2024.06.14 |
[통계학] 통계학에서 자료의 종류 (1) | 2024.06.09 |
[통계학] 기술통계학(Descriptive Statistics)과 추측통계학(Inferential Statistics) (1) | 2024.06.08 |
[통계학] 통계지리서비스란? (0) | 2024.06.07 |
댓글