紧接上文,我们来看一下,决策树在训练数据量很大的情况下,能否得到有效的分类模型。我们将会为决策树添加球队,以检测它是否能整合新增的信息。
虽然决策树能够处理特征值为类别型的数据,但scikit-learn库所实现的决策树算法要求先对这类特征进行处理。用LabelEncoder转换器就能把字符串类型的球队名转化为整型。代码如下:
from sklearn.preprocessing import LabelEncoder
encoding = LabelEncoder()
encoding.fit(dataset["Home Team"].values)
##将主场球队名称转化为整型:
home_teams = encoding.transform(dataset["Home Team"].values)
##将客场球队名称转化为整型:
visitor_teams = encoding.transform(dataset["Visitor Team"].values)
## 将主客队的2个数据进行上下叠加后转置,这样就能获得一个编号代表对阵双方的2列数据了
X_teams = np.vstack([home_teams, visitor_teams]).T
##我们把X_teams作为特征值,进行预测:
clf = DecisionTreeClassifier(random_state=14)
scores = cross_val_score(clf, X_teams, y_true,scoring='accuracy')
print("Accuracy: {0:.1f}%".format