Browse Source

实现gbdt算法

yufeng0528 4 years ago
parent
commit
9f2fdf4090
2 changed files with 22 additions and 5 deletions
  1. 22 5
      integr/gbdt_train.py
  2. 0 0
      integr/my_gbdt.py

+ 22 - 5
integr/gbdt_train.py

@@ -3,12 +3,12 @@
3 3
 #-*- coding:utf-8 -*-
4 4
  
5 5
 import numpy as np
6
-from sklearn.ensemble import GradientBoostingClassifier
6
+from sklearn.ensemble import GradientBoostingClassifier,GradientBoostingRegressor
7 7
 from sklearn.model_selection import train_test_split
8
-from sklearn.datasets import load_wine
8
+from sklearn.datasets import load_wine,load_boston
9 9
 wine = load_wine()
10 10
 Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=0.3)
11
-#print (X,y)
11
+print(Ytrain)
12 12
  
13 13
 #默认参数
14 14
 #Accuracy : 0.9856
@@ -16,5 +16,22 @@ Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=
16 16
 gbm1 = GradientBoostingClassifier( n_estimators=500,max_depth=10,max_features='sqrt', random_state=10)
17 17
 gbm1.fit(Xtrain,Ytrain)
18 18
 print("gbdt1",gbm1.score(Xtest,Ytest))
19
- 
20
- 
19
+
20
+boston = load_boston()
21
+Xtrain, Xtest, Ytrain, Ytest = train_test_split(boston.data, boston.target, test_size=0.3)
22
+print(Ytrain)
23
+
24
+# 默认参数
25
+# Accuracy : 0.9856
26
+# AUC Score (Train): 0.862264
27
+gbm2 = GradientBoostingRegressor(n_estimators=5, max_depth=5, max_features='sqrt', random_state=10)
28
+gbm2.fit(Xtrain, Ytrain) # 分数越高越好
29
+print("gbdt1", gbm2.score(Xtest, Ytest))
30
+
31
+gbm2 = GradientBoostingRegressor(n_estimators=50, max_depth=5, max_features='sqrt', random_state=10)
32
+gbm2.fit(Xtrain, Ytrain)
33
+print("gbdt2", gbm2.score(Xtest, Ytest))
34
+
35
+gbdt3 = GradientBoostingRegressor(n_estimators=150, max_depth=5, max_features='sqrt', random_state=10)
36
+gbdt3.fit(Xtrain, Ytrain)
37
+print("gbdt3", gbdt3.score(Xtest, Ytest))

+ 0 - 0
integr/my_gbdt.py