下面是详细的步骤和示例说明:
1. 准备数据
首先要使用 pandas 导入数据,并进行数据处理以便于划分数据集,例如去除空值、重复值、无用的特征等。
import pandas as pd
# 导入数据
data = pd.read_csv('data.csv')
# 数据预处理
data.dropna() # 删除空值
data.drop_duplicates() # 删除重复值
data.drop('id', axis=1, inplace=True) # 删除无用的特征
2. 划分数据集
接着,使用 train_test_split()
函数将数据集划分为训练集和测试集。该函数需要传递的参数包括数据集 X 和标签 y,以及测试集占总数据的比例 test_size
。
from sklearn.model_selection import train_test_split
# 划分数据集
X = data.drop('label', axis=1) # 特征
y = data['label'] # 标签
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
此时,数据集已经成功划分为训练集和测试集,且比例为 7:3。
3. 计算划分后的数据集大小
划分好数据集后,可以使用 len()
函数计算训练集和测试集的数量,以确保划分比例正确。
# 计算数据集大小
train_size = len(X_train)
test_size = len(X_test)
print(f'Training dataset size: {train_size}')
print(f'Testing dataset size: {test_size}')
输出结果如下:
Training dataset size: 7000
Testing dataset size: 3000
4. 示例说明1
以鸢尾花数据集为例,使用 pandas 划分数据集实现训练集和测试集:
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据集
iris = load_iris()
# 转化为 pandas DataFrame
data = pd.DataFrame(iris.data, columns=iris.feature_names)
data['label'] = iris.target
# 划分数据集
X = data.drop('label', axis=1)
y = data['label']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 打印数据集大小
print(f'Training dataset size: {len(X_train)}')
print(f'Testing dataset size: {len(X_test)}')
输出结果如下:
Training dataset size: 105
Testing dataset size: 45
5. 示例说明2
以鸢尾花数据集为例,使用 pandas 划分数据集实现训练集和测试集,并使用决策树模型进行分类:
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
# 加载数据集
iris = load_iris()
# 转化为 pandas DataFrame
data = pd.DataFrame(iris.data, columns=iris.feature_names)
data['label'] = iris.target
# 划分数据集
X = data.drop('label', axis=1)
y = data['label']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 训练模型
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
# 预测测试集
y_pred = model.predict(X_test)
# 计算分类准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy}')
输出结果如下:
Accuracy: 0.9777777777777777
以上就是使用 pandas 划分数据集实现训练集和测试集的完整攻略,同时给出了两个示例说明,希望对您有所帮助。