일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 아키네이처
- 퀵정렬
- 한국디도스
- 빗썸데이터
- API요청
- ES차이
- 아마존해킹
- es6문법
- 알고리즘 문제 풀이
- 공개API
- 자바스크립트표준
- 네트워크해킹
- es3
- 비전공자개발정리
- 데이터분석
- 브라우저 작동원리
- 트위터해킹
- 1일 1로그 100일 완성 IT지식
- HDD와 SSD의 차이
- 이진검색
- 주식스팸
- 숫자구하기
- 컴퓨터 논리와 구조
- 컴퓨터과학
- 프로세서 속도와 심장 박동수
- es6
- ES5
- CS스터디
- 줌서비스
- ECMA설명
- Today
- Total
개발일지
데이터분석 4주차 숙제 - 📄 앞서 배운 다양한 회귀 분석을 통해서 보스턴 주택 가격을 예측해봅시다. 본문
데이터분석 4주차 숙제 - 📄 앞서 배운 다양한 회귀 분석을 통해서 보스턴 주택 가격을 예측해봅시다.
MotherCarGasoline 2022. 1. 30. 12:50- [코드스니펫] - 보스턴 주택 가격 칼럼 설명 원문
- <https://www.rdocumentation.org/packages/spdep/versions/0.6-15/topics/boston>
각 변수의 의미는 다음과 같습니다:
( 저희 데이터에는 원문 링크에 있는 열이 일부 없지만 무시하셔도 괜찮습니다 🙂 )
TOWN: 소속 도시 이름
TOWN_Number : 소속 도시의 고유 번호
LON : 경도(Longitudes)
LAT : 위도(Latitudes)
**CMEDV: 주택 가격 중앙값**
CRIM: 도시시(Town) 별 1인당 범죄율
ZN: 25,000 평방 피트를 초과하는 거주지역의 비율
INDUS: 비소매상업지역이 점유하고 있는 토지 비율
CHAS: 찰스강에 대한 더미 변수(강의 경계에 위치한 경우는 1, 아니면 0)
NOX: 소속 도시의 농축 일산화질소
RM: 주택 1가구당 평균 방의 개수
AGE: 1940년 이전에 건축된 소유주택의 비율
DIS: 5개의 보스턴 직업센터까지의 접근성 지수
RAD: 방사형 도로까지의 접근성 지수
TAX: 10,000 달러 당 재산세율
PTRATIO: 자치시(Town)별 학생/교사 비율
B: 1000(Bk - 0.63)^2, 여기서 Bk는 도시(Town)별 흑인의 비율을 말한다.
LSTAT: 하위 계층 비율
👻 Q1. 탐색적 데이터 분석을 통해 히트맵으로 시각화해봅시다.
Q2. 앞서 자전거 수요 예측하기에서 사용했던 다음의 선형 회귀 모델을 학습합니다.
Q3. 자전거 수요 예측 때와 마찬가지로 각 특성들의 coefficients 값을 출력해보세요.
- 선형회귀 모델 학습 코드 참고
lr = LinearRegression() lr.fit(x_train, y_train)
- from sklearn.linear_model import LinearRegression
- Coefficients 값 출력 예시
코랩시작
#데이터 로드하기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
boston_df = pd.read_csv('Sparta_CodingClub_Boston.csv')
boston_df
해당 데이터의 각 열에 대한 설명 원문(영어)은 아래의 링크에서 확인 가능합니다.
https://www.rdocumentation.org/packages/spdep/versions/0.6-15/topics/boston
각 변수의 의미는 다음과 같습니다:
TOWN: 소속 도시 이름
TOWN_Number : 소속 도시의 고유 번호
LON : 경도(Longitudes)
LAT : 위도(Latitudes)
CMEDV: 주택 가격 중앙값
CRIM: 도시시(Town) 별 1인당 범죄율
ZN: 25,000 평방 피트를 초과하는 거주지역의 비율
INDUS: 비소매상업지역이 점유하고 있는 토지 비율
CHAS: 찰스강에 대한 더미 변수(강의 경계에 위치한 경우는 1, 아니면 0)
NOX: 소속 도시의 농축 일산화질소
RM: 주택 1가구당 평균 방의 개수
AGE: 1940년 이전에 건축된 소유주택의 비율
DIS: 5개의 보스턴 직업센터까지의 접근성 지수
RAD: 방사형 도로까지의 접근성 지수
TAX: 10,000 달러 당 재산세율
PTRATIO: 자치시(Town)별 학생/교사 비율
B: 1000(Bk - 0.63)^2, 여기서 Bk는 도시(Town)별 흑인의 비율을 말한다.
LSTAT: 하위 계층 비율
#결측값 확인 후 열 삭제
boston_df.isnull().sum()
마을 이름이 주어져있으므로, 굳이 TOWN #열은 있을 필요가 없음.
TOWN# 열은 제거
del boston_df['TOWN#']
boston_df
#상관관계 분석
columns = ['CMEDV', 'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT']
corr = boston_df[columns].corr(method = 'pearson')
corr
# 아래의 두 커맨드를 통해 히트맵에서의 크기 조정 가능
fig = plt.figure(figsize = (14, 10))
ax = fig.gca()
# 레이블의 폰트 사이즈를 조정
sns.set(font_scale=1.5)
hm = sns.heatmap(corr.values,
cbar=True,
annot=True,
square=True,
fmt='.2f',
annot_kws={'size': 15},
yticklabels=columns,
xticklabels=columns,
ax=ax)
plt.tight_layout()
plt.show()
CMEDV - 주택 가격은 RM - 자택당 평균 방 갯수(0.7) 및 LSTAT - 빈곤층의 비율(-0.74)과 강한 상관관계를 보이고 있다는 것을 알 수 있습니다.
**주의할 점은 상관 계수가 -1에 가깝다고해서 상관관계가 낮은 것이 아니라 음의 상관관계가 높은 것입니다.**
#선형 회귀
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler() # 평균 0, 표준편차 1
columns = ['CRIM', 'ZN', 'INDUS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT']
boston_df[columns] = scaler.fit_transform(boston_df[columns])
boston_df
from sklearn.model_selection import train_test_split
X = boston_df[columns]
y = boston_df['CMEDV']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=777)
#회귀 분석
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X_train, y_train)
print(lr.score(X_test, y_test))
print(lr.score(X_train, y_train))
print(lr.coef_)
coefs = pd.DataFrame(zip(boston_df[columns].columns, lr.coef_), columns = ['feature', 'coefficients'])
coefs
위의 분석 결과에 근거한 집값 예측의 수식은 다음과 같습니다.
$y = 22.5460−0.9112\text{ CRIM}+1.1255\text{ ZN}+0.1906\text{ INDUS}−2.1860\text{ NOX}+2.4701\text{ RM}+0.0345\text{ AGE}−3.4834\text{ DIS}+2.2827\text{ RAD}−2.3896\text{ TAX}−2.0444\text{ PTRATIO}+0.7542\text{ B}−4.1742\text{ LSTAT}$
잘모르고 가볍게 무의식에 넣는다는 식으로 보고있다. 기초를 배우고 다시 돌려봐야할듯
'강의 > 데이터분석' 카테고리의 다른 글
데이터분석 5주차 숙제 - 📄 통신사 고객 데이터를 이용한 종합적 데이터 분석 (0) | 2022.02.06 |
---|---|
데이터분석 3주차 숙제 - 📄 붓꽃 데이터의 탐색적 데이터 분석을 진행하고, 여러가지 차트들을 그려주세요. (0) | 2022.01.27 |
데이터분석 2주차 숙제 - 📄 네이버 쇼핑 리뷰 데이터 (0) | 2022.01.26 |
데이터분석 1주차 숙제 - 📄 지니 뮤직 1~50위 곡을 스크래핑 해보세요 (0) | 2022.01.24 |