从csv获取熊猫系列
Posted
技术标签:
【中文标题】从csv获取熊猫系列【英文标题】:Get panda Series from csv 【发布时间】:2017-11-03 04:16:42 【问题描述】:我对机器学习完全陌生,我目前正在使用 MNIST 机器学习,使用 RandomForestClassifier。
我使用 sklearn 和 panda。 我有一个训练 CSV 数据集。
import pandas as pd
import numpy as np
from sklearn import model_selection
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import LinearSVC
from sklearn.linear_model import SGDClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
train = pd.read_csv("train.csv")
features = train.columns[1:]
X = train[features]
y = train['label']
user_train = pd.read_csv("input.csv")
user_features = user_train.columns[1:]
y_train = user_train[user_features]
user_y = user_train['label']
X_train, X_test, y_train, y_test = model_selection.train_test_split(X/255.,y,test_size=1,random_state=0)
clf_rf = RandomForestClassifier()
clf_rf.fit(X_train, y_train)
y_pred_rf = clf_rf.predict(X_test)
acc_rf = accuracy_score(y_test, y_pred_rf)
print("pred : ", y_pred_rf)
print("random forest accuracy: ",acc_rf)
我有当前的代码,效果很好。它获取训练集,拆分并取一个元素进行测试,然后进行预测。
我现在想要的是使用输入中的测试数据,我有一个名为“input.csv”的新 csv,我想预测这个 csv 中的值。
如何用我的输入数据替换 model_selection.train_test_split ? 我确信响应非常明显,我没有发现任何东西。
【问题讨论】:
您是想使用 input.csv 数据重新训练模型,还是直接将拟合好的模型应用到 input.csv 作为您的测试数据? 【参考方案1】:您的代码的以下部分未使用
user_train = pd.read_csv("input.csv")
user_features = user_train.columns[1:]
y_train = user_train[user_features]
user_y = user_train['label']
如果 input.csv 具有与 train.csv 相同的结构,您可能希望:
训练一个分类器并在 input.csv 数据集的拆分上对其进行测试:(请参阅http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html 了解如何设置测试大小)
input_train = pd.read_csv("input.csv")
input_features = user_train.columns[1:]
input_data = user_train[input_features]
input_labels = user_train['label']
data_train, data_test, labels_train, labels_test = model_selection.train_test_split(input_data/255.,input_labels,test_size=1,random_state=0)
clf_rf = RandomForestClassifier()
clf_rf.fit(data_train, labels_train)
labels_pred_rf = clf_rf.predict(data_test)
acc_rf = accuracy_score(labels_test, labels_pred_rf)
在整个 input.csv 文件上测试之前训练的分类器
input_train = pd.read_csv("input.csv")
input_features = user_train.columns[1:]
input_data = user_train[input_features]
input_labels = user_train['label']
labels_pred_rf = clf_rf.predict(input_data)
acc_rf = accuracy_score(input_labels, labels_pred_rf)
【讨论】:
以上是关于从csv获取熊猫系列的主要内容,如果未能解决你的问题,请参考以下文章