如何在Scikit中加载本地Excel文件用于训练测试?解决DataFrame报错
解决Scikit-learn加载本地Excel文件后拆分特征与目标的问题
错误原因
你执行的X,y=data(return_X_y=True)是错误语法——data是Pandas的DataFrame对象,不能像函数那样调用。return_X_y=True是Scikit-learn自带数据集加载函数(如load_iris())的参数,不适用于Pandas数据框。
正确操作步骤
确认数据列结构
先通过print(data.columns)查看Excel里的特征列和目标列名称/位置,比如IRIS数据集通常前4列是特征,最后1列是类别标签。拆分特征(X)和目标(y)
两种常用方式:- 按列位置拆分(假设目标列是最后一列):
X = data.iloc[:, :-1] # 所有行,除最后一列外的所有列作为特征 y = data.iloc[:, -1] # 所有行的最后一列作为目标变量 - 按列名拆分(假设目标列名为
species):X = data.drop("species", axis=1) # 删除目标列,剩余为特征 y = data["species"] # 提取目标列
- 按列位置拆分(假设目标列是最后一列):
拆分训练集与测试集
导入Scikit-learn的拆分工具,然后划分数据:from sklearn.model_selection import train_test_split # 按8:2比例拆分,random_state保证结果可复现 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)后续训练
拿到X_train、y_train和X_test、y_test后,就可以使用Scikit-learn的模型(如LogisticRegression、SVC等)进行训练和测试了。
内容的提问来源于stack exchange,提问作者HarshitMalhotra
相关产品推荐
相关产品推荐

