ML (보스턴)

이동일·2023년 9월 21일
0

Machine Learning

목록 보기
7/12
post-thumbnail
import pandas as pd

# CSV 파일 경로
csv_file_path = r'C:\Users  boston.csv'
df = pd.read_csv(csv_file_path, sep='\s+')
df.columns = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'PRICE']
boston = df

boston

  • 가격기준 히스토그램

  • 상관관계

  • 히트맵 (sns.heatmap(data=corr_mat, annot=True, cmap='bwr'))

  • 선형회귀

sns.set_style('darkgrid')
sns.set(rc={'figure.figsize': (12,6)})
fig, ax = plt.subplots(ncols=2)
sns.regplot(x="RM", y="PRICE", data=boston_pd, ax=ax[0])
sns.regplot(x="LSTAT", y="PRICE", data=boston_pd, ax=ax[1])

회귀 모델 사용


1. 모델 선택
#모델 선택
from sklearn.model_selection import train_test_split

X = boston_pd.drop('PRICE', axis=1)
y = boston_pd['PRICE']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=13)




2. 선형 회귀로 모델학습하기
#선형 회귀로 모델학습
from sklearn.linear_model import LinearRegression
#price 컬럼 값이 존재하지 않아 실습불가

reg = LinearRegression()
reg.fit(X_train, y_train)




3. 모델평가

from sklearn.metrics import mean_squared_error

pred_tr = reg.predict(X_train)
pred_test = reg.predict(X_test)

rmse_tr = np.sqrt(mean_squared_error(y_train, pred_tr))

rmse_test = np.sqrt(mean_squared_error(y_test, pred_test))


4. 출력
print("RMSE train: ", rmse_tr)
print("RMSE test: ", rmse_test)
#RMSE train:  4.821041974435382
#RMSE test:  4.256804937894875


5. 테스트 모델 출력
plt.scatter(y_test, pred_test)
plt.xlabel('Real ($1000)')
plt.ylabel('Predicted Prices')
plt.plot([0,50], [0,50])
plt.show()

0개의 댓글

관련 채용 정보