📅  最后修改于: 2023-12-03 15:18:14.343000             🧑  作者: Mango
在机器学习领域中,训练测试拆分是一个非常重要的操作,拆分数据可以帮助我们评估机器学习算法的性能。Pandas 是 Python 中用于数据预处理和数据分析的一个非常流行的库。这篇文章将介绍如何在 Pandas 中进行训练测试拆分。
在机器学习中,数据预处理是一个非常重要的步骤,数据必须是干净的,没有缺失的值或异常值。
我们将使用鸢尾花数据集,它是一个非常著名的数据集,由三个不同的品种的鸢尾花组成。Pandas 中有一个很好的功能读取 CSV 文件,并将其转换为 DataFrame 对象。
下面是加载数据集的代码:
import pandas as pd
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
# Load dataset into pandas dataframe
df = pd.read_csv(url, names=['sepal length', 'sepal width', 'petal length', 'petal width', 'target'])
在使用机器学习算法时,我们通常需要将数据集拆分为训练集和测试集,训练集用于训练模型,测试集用于评估模型的性能。
我们可以使用 Pandas 中的 train_test_split
函数来完成这个操作。下面是这个函数的调用方式:
from sklearn.model_selection import train_test_split
# Split dataset into training set and test set
X_train, X_test, y_train, y_test = train_test_split(df[['sepal length', 'sepal width', 'petal length', 'petal width']], df['target'], test_size=0.3, random_state=0)
这个函数需要传入 4 个参数,分别是特征向量 X
,目标向量 y
,测试集占的比例大小 test_size
和一个可选的随机种子 random_state
。
现在已经成功地将数据集拆分成了训练集和测试集,现在我们可以将这些数据集提供给一个机器学习模型进行训练和测试。
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# Create Decision Tree classifer object
clf = DecisionTreeClassifier()
# Train Decision Tree Classifer
clf = clf.fit(X_train,y_train)
# Predict the response for test dataset
y_pred = clf.predict(X_test)
# Model Accuracy, how often is the classifier correct?
print("Accuracy:",accuracy_score(y_test, y_pred))
这个代码段中,我们使用决策树算法作为我们的机器学习算法。首先,我们创建一个 DecisionTreeClassifier
的实例,然后通过 fit
方法训练这个分类器。最后,我们使用 predict
方法预测测试集的目标值,调用 accuracy_score
方法计算预测的精度。
在这篇文章中,我们学习了如何在 Pandas 中进行训练测试拆分,这是机器学习中非常重要的一步。我们还学习了如何使用决策树算法进行分类,最后计算出分类器的准确度。