在Python中使用决策树进行分类问题的实现方法
- 导入库和数据集
首先需要导入所需的库和数据集,我们使用sklearn库中自带的iris数据集来进行演示。
import numpy as np import pandas as pd from sklearn import datasets from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split iris = datasets.load_iris() X = iris.data y = iris.target
- 划分数据集
将数据集划分为训练集和测试集,其中训练集占70%。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)
- 训练模型
使用训练数据集进行模型的训练。
tree = DecisionTreeClassifier() tree.fit(X_train, y_train)
- 预测结果
使用测试数据集进行模型的预测,并输出准确率。
y_pred = tree.predict(X_test) accuracy = np.mean(y_pred == y_test) print("Accuracy:", accuracy)
- 演示完整代码
import numpy as np import pandas as pd from sklearn import datasets from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split iris = datasets.load_iris() X = iris.data y = iris.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1) tree = DecisionTreeClassifier() tree.fit(X_train, y_train) y_pred = tree.predict(X_test) accuracy = np.mean(y_pred == y_test) print("Accuracy:", accuracy)
注:本示例中为了演示方便,使用的是已有的数据集进行演示,如果需要使用字符串作为范例,需要将字符串通过编码转换为数字,可以使用pandas库中的replace方法将字符串替换为数字。
import pandas as pd df = pd.DataFrame({'text': ['pidancode.com', '皮蛋编程', 'pidancode.com', 'pidancode.com', '皮蛋编程']}) df['text'] = df['text'].replace(['pidancode.com', '皮蛋编程'], [0, 1]) print(df)
相关文章