XGBoost入门

来源:互联网 发布:2017黑页源码带音乐 编辑:程序博客网 时间:2024/05/21 10:42

CNN和RNN更多的是用来处理图像识别和语音识别,日常工作中我们可能更多的是基于结构化数据来解决分类或回归问题。下面用XGBoost来开发一个简单的二分类问题。

数据集用来判断患者是否会在5年内患糖尿病,有9列数据, 前8列是变量数据,最后一列是标签数据。

数据集地址

https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data


from numpy import loadtxtfrom xgboost import XGBClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_score#分出变量和标签dataset = loadtxt('pima-indians-diabetes.data', delimiter=",")X = dataset[:,0:8] #前8列为数据Y = dataset[:,8] #最后一列是标签数据#将数据分为训练集和测试集,训练集用来训练模型,测试集用来预测seed = 7test_size = 0.33X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size, random_state=seed)#训练模型model = XGBClassifier()model.fit(X_train, y_train)#评估模型y_pred = model.predict(X_test)predictions = [round(value) for value in y_pred] #xgboost 的结果是每个样本属于第一类的概率,需要用 round 将其转换为 0 1 值#准确率accuracy = accuracy_score(y_test, predictions)print("Accuracy: %.2f%%" % (accuracy * 100.0))


参考资料

http://geek.csdn.net/news/detail/201207