Machine Learning Algorithm Based Regression?
기계학습 알고리즘을 이용한 회귀분석
1. Decision Tree Regressor
알고리듬 임포트
from sklearn.tree import DecisionTreeRegressor
dt_regr = DecisionTreeRegressor(max_depth=5)
's6' 혈당 수치 데이터 넣고 훈련
dt_regr.fit(X_train['s6'].values.reshape((-1,1)), y_train)
예측
y_pred = dt_regr.predict(X_test['s6'].values.reshape((-1,1)))
print('단순 결정 트리 회귀 R2: {:.2f}'.format(r2_score(y_test,y_pred)))
출력>
단순 결정 트리 회귀 R2: 0.14
시각화
#Linear line의 생성
line_x = np.linspace(np.min(X_test['s6']), max(X_test['s6']), 10)
line_y = dt_regr.predict(line_x.reshape(-1,1))
print(line_x)
print(line_y)
#Test data를 표현
plt.scatter(X_test['s6'], y_test, s=10, c='black')
plt.plot(line_x, line_y, c='red')
plt.legend(['Test data sample','Regression line'])

만약 모든 데이터를 통해 모델을 훈련하고 싶다면 ▽
mt_regre = DecisionTreeRegressor(max_depth=3)
mt_regre.fit(X_train, y_train)
y_pred = mt_regre.predict(X_test)
print('다중 결정 트리 회귀, r2: {:.2f}'.format(r2_score(y_test, y_pred)))
2. Support Vector Machine Regressor
from sklearn.svm import SVR # classfication에 쓰는건 SVC, regression에 쓰는건 SVR
svm_regre = SVR()
svm_regre.fit(X_train['s6'].values.reshape((-1,1)),y_train)
y_pred = svm_regre.predict(X_test['s6'].values.reshape(-1,1))
print('단순 서포트 벡터 머신 회귀, R2: {:.2f}'.format(r2_score(y_test, y_pred)))
출력>
단순 서포트 벡터 머신 회귀, R2: 0.06
for i in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]:
svm_regr = SVR(C = i) # 기본값 c = 1 , 높아질수록 데이터에 집착하지 않고 노멀하게 예측하게된다(전체 트랜트 예측)
svm_regr.fit(X_train, y_train)
y_pred = svm_regr.predict(X_test)
print('다중 서포트 벡터 머신 회귀,i={} R2: {:.2f}'.format(i, r2_score(y_test, y_pred)))
출력>
다중 서포트 벡터 머신 회귀,i=1 R2: 0.17
다중 서포트 벡터 머신 회귀,i=2 R2: 0.29
다중 서포트 벡터 머신 회귀,i=3 R2: 0.35
다중 서포트 벡터 머신 회귀,i=4 R2: 0.39
다중 서포트 벡터 머신 회귀,i=5 R2: 0.42
다중 서포트 벡터 머신 회귀,i=6 R2: 0.44
다중 서포트 벡터 머신 회귀,i=7 R2: 0.46
다중 서포트 벡터 머신 회귀,i=8 R2: 0.47
다중 서포트 벡터 머신 회귀,i=9 R2: 0.48
다중 서포트 벡터 머신 회귀,i=10 R2: 0.49
다중 서포트 벡터 머신 회귀,i=11 R2: 0.49
다중 서포트 벡터 머신 회귀,i=12 R2: 0.50
다중 서포트 벡터 머신 회귀,i=13 R2: 0.50
다중 서포트 벡터 머신 회귀,i=14 R2: 0.50
다중 서포트 벡터 머신 회귀,i=15 R2: 0.50
다중 서포트 벡터 머신 회귀,i=16 R2: 0.50
다중 서포트 벡터 머신 회귀,i=17 R2: 0.50
다중 서포트 벡터 머신 회귀,i=18 R2: 0.50
다중 서포트 벡터 머신 회귀,i=19 R2: 0.50
다중 서포트 벡터 머신 회귀,i=20 R2: 0.50
3. Multi Layer Perceptron Regressor
from sklearn.neural_network import MLPRegressor
mlp_regr = MLPRegressor(hidden_layer_sizes = 1000, max_iter = 500)
mlp_regr.fit(X_train,y_train)
y_pred = mlp_regr.predict(X_test)
print('다중 MLP 회귀 R2: {:.2f}'.format(r2_score(y_test, y_pred)))
'machine_learning' 카테고리의 다른 글
| 비지도 학습 Clustering(2) - K-Means 모델 만들기 (0) | 2023.05.01 |
|---|---|
| 비지도 학습 Clustering(1) - 예제용 와인 데이터 전처리 (0) | 2023.05.01 |
| sklearn_regression 2. Linear regression (0) | 2023.04.28 |
| sklearn_regression 1. 예시용 당뇨병 데이터 정리 (0) | 2023.04.28 |
| sklearn_classification 평가 방법 (0) | 2023.04.28 |