|
4 | 4 | from sklearn.preprocessing import MinMaxScaler
|
5 | 5 |
|
6 | 6 | from sklearn.linear_model import LinearRegression
|
| 7 | +from sklearn.svm import SVR |
| 8 | +from sklearn.ensemble import RandomForestRegressor |
7 | 9 |
|
8 |
| -data = pd.read_csv("./datasets/housing_data.csv", header=None, sep=',') # if no columns , header = None |
| 10 | +from sklearn.metrics import mean_absolute_error, mean_squared_error, mean_absolute_percentage_error |
| 11 | + |
| 12 | +data = pd.read_csv("datasets/housing_data.csv", header=None, sep=',') # if no columns , header = None |
9 | 13 | column_names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT',
|
10 | 14 | 'MEDV', 'isHighValue']
|
11 | 15 |
|
|
23 | 27 | med_val = data['CRIM'].median()
|
24 | 28 | data1['CRIM'] = data1['CRIM'].fillna(med_val)
|
25 | 29 |
|
26 |
| - |
27 | 30 | # print(data1.describe())
|
28 | 31 |
|
29 | 32 | # 결측치 처리 - CRIM column의 행들 중 결측치가 존재하는 행들 제거
|
@@ -81,3 +84,29 @@ def get_iqr_outlier_prop(x):
|
81 | 84 | model_lr.fit(X_train_r_scaled, y_train_r)
|
82 | 85 | print(model_lr.coef_)
|
83 | 86 | print(model_lr.intercept_)
|
| 87 | + |
| 88 | +# SVM |
| 89 | +model_svr = SVR() |
| 90 | +model_svr.fit(X_train_r_scaled, y_train_r) |
| 91 | + |
| 92 | +# RandomForest |
| 93 | +model_rfr = RandomForestRegressor(random_state=123) |
| 94 | +model_rfr.fit(X_train_r_scaled, y_train_r) |
| 95 | +for x, val in zip(X_cols, model_rfr.feature_importances_): |
| 96 | + print(f'{x} : %.3f' % val) |
| 97 | + |
| 98 | +# 모형별 평가 |
| 99 | +y_pred_lr = model_lr.predict(X_test_r_scaled) |
| 100 | +y_pred_svr = model_svr.predict(X_test_r_scaled) |
| 101 | +y_pred_rfr = model_rfr.predict(X_test_r_scaled) |
| 102 | + |
| 103 | +print('-'*30) |
| 104 | +print("선형 회귀 결과") |
| 105 | +print('MAE : %.3f' %mean_absolute_error()) |
| 106 | +print('MSE : %.3f' %mean_squared_error()) |
| 107 | +print('MAPE : %.3f' %mean_absolute_percentage_error()) |
| 108 | +print('-'*30) |
| 109 | +print('-'*30) |
| 110 | + a= [1,2,4,5,6] |
| 111 | + for x in a: |
| 112 | + printa) |
0 commit comments