如何在Python机器学习中分别使用训练文件与测试文件?
如何在Python机器学习中使用训练与测试数据集(新手友好版)
Hey there! 既然你是编程新手,咱们一步步来拆解,尽量用最直白的方式讲清楚~
第一步:完善数据加载(用更省心的工具)
你已经写了load_file的开头,其实在机器学习场景下,用pandas库加载CSV文件会更简单,它能帮你自动把数据整理成类似Excel表格的结构,不用手动处理每一行。首先你需要先安装pandas(如果还没装的话,在终端里敲这个命令):
pip install pandas
然后直接用两行代码加载训练和测试文件就行:
import pandas as pd # 加载训练集和测试集,替换成你的文件实际路径 train_df = pd.read_csv('train.csv') test_df = pd.read_csv('test.csv')
加载完后,你可以用print(train_df.head())看看前5行数据,确认数据是否正确加载。
第二步:拆分特征与标签
你的CSV第一列是评论(我们叫特征X,是模型用来学习的输入),第二列是情感标签(标签y,是模型要预测的输出)。咱们把它们分开:
# 训练集拆分:取第一列所有行作为评论,第二列作为标签 X_train = train_df.iloc[:, 0] y_train = train_df.iloc[:, 1] # 测试集做同样的拆分 X_test = test_df.iloc[:, 0] y_test = test_df.iloc[:, 1]
小提示:Python里计数从0开始,所以iloc[:,0]代表所有行的第一列,iloc[:,1]代表所有行的第二列。
第三步:把文本转成模型能懂的格式
机器学习模型没法直接理解文字,所以咱们需要把评论转换成数字特征。这里用sklearn库的CountVectorizer(把每个词出现的次数作为特征),先安装sklearn:
pip install scikit-learn
然后完成文本到数字的转换:
from sklearn.feature_extraction.text import CountVectorizer # 初始化转换器,先从训练集学习词汇表(不能用测试集学,不然模型会作弊) vectorizer = CountVectorizer() X_train_vec = vectorizer.fit_transform(X_train) # 用同样的词汇表转换测试集 X_test_vec = vectorizer.transform(X_test)
第四步:训练模型并测试效果
咱们用一个简单的逻辑回归模型(适合新手,效果也稳定):
from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # 初始化模型 model = LogisticRegression() # 用训练数据教模型学习规律 model.fit(X_train_vec, y_train) # 用测试数据验证模型学得怎么样 y_pred = model.predict(X_test_vec) # 计算预测准确率,看看模型准不准 accuracy = accuracy_score(y_test, y_pred) print(f"测试集预测准确率:{accuracy:.2f}")
备选:如果坚持用自己的load_file函数
要是你想继续用自己写的加载逻辑,也可以用Python内置的csv模块完善,代码如下:
import csv def load_file(file_path): comments = [] labels = [] with open(file_path, 'r', encoding='utf-8') as f: reader = csv.reader(f) next(reader) # 如果你的CSV有表头,记得跳过第一行 for row in reader: comments.append(row[0]) labels.append(int(row[1])) # 把标签转成整数类型 return comments, labels # 调用函数加载数据 X_train, y_train = load_file('train.csv') X_test, y_test = load_file('test.csv')
之后的文本转换和模型训练步骤和上面完全一样~
内容的提问来源于stack exchange,提问作者RennyM
相关产品推荐
相关产品推荐

