赞
踩
- #机器学习之决策树分类
- #导入所需的库
- import pandas as pd
- import numpy as np
- from imblearn.over_sampling import SMOTE
- from sklearn.model_selection import train_test_split
- from sklearn.tree import DecisionTreeClassifier
-
- #读取文件
- dataset=pd.read_csv(r"H:/Code_Test/Python/data.csv")
-
- #选择数据 x为除最后一列的所有数据 y为最后一列数据
- x=dataset.iloc[:,:-1].values
- y=dataset.iloc[:,-1].values
-
- #使用SMOTE算法采样
- sm=SMOTE()
- x_data,y_data=sm.fit_resample(x,y)
-
- #设置训练集和测试集
- x_train,x_test,y_train,y_test=train_test_split(x_data,y_data,test_size=0.2,random_state=11)
-
- #设置分类器 其中1和0表示不同的分类标签
- d1=DecisionTreeClassifier(criterion='entropy',max_depth=5)
- d1.fit(x_train,y_train)
-
- #预测结果
- y_pred=d1.predict(x_test)
- print(y_pred)
-
- #评价结果80.48780487804879
- from sklearn.metrics import accuracy_score
- ac=accuracy_score(y_test,y_pred)*100
-
- print(ac)
代码使用了imblearn
包中的SMOTE
算法来对数据进行过采样。SMOTE
代表合成少数类过采样技术,是解决机器学习中不平衡数据的常用技术之一。
fit_resample()
方法用于对数据进行过采样。它接受两个参数:x
和y
,分别代表特征矩阵和目标变量。fit_resample()
方法返回两个数组,x_data
和y_data
,分别表示过采样后的特征矩阵和目标变量。
决策树分类器对象,其中包含了两个参数:criterion
和max_depth
。
criterion
参数用于设置划分节点的质量度量准则,这里设置为熵(Entropy)。熵是衡量数据集纯度的一种指标,用于衡量样本的不确定性,当熵越高时,数据集的不确定性也越高,反之亦然。
max_depth
参数用于设置决策树的最大深度,即从根节点到叶节点的最长路径长度。设置最大深度是为了避免过拟合,当决策树的深度达到最大深度时,算法就会停止分裂,这样可以减少模型复杂度,提高模型的泛化能力。
在二分类问题中,通常用1和0来表示不同的分类标签。
通常情况下,我们将1作为"正例"或"阳性"的标签,代表模型预测的是该样本属于某种类别或事件发生的可能性很高。
而0则通常被作为"负例"或"阴性"的标签,代表模型预测的是该样本不属于某种类别或事件发生的可能性很低。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。