python - 从 csv 获取 Pandas 系列

标签 python pandas machine-learning scikit-learn sklearn-pandas

我对机器学习完全陌生,我目前正在玩 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? 我确定响应非常明显,但我没有发现任何东西。

最佳答案

您的代码的以下部分未使用

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)
    

关于python - 从 csv 获取 Pandas 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44317293/

相关文章:

python - pandas Series'对象没有属性 'find'

python - scikit 的 MLPClassifier(和其他分类器)的训练分数低

python - 填充 pandas 数据框中的缺失值

python - 狗与猫 : How is the data labelled?

python - 使用日期作为列值 reshape 数据

python - ReadWriteMemory 将内存读取为 int 而不是 float

python - 如何在多索引中插入缺失的行

machine-learning - 以倍频程实现整流线性单元

python - 当我尝试运行 Travis-CI 测试时,为什么我的模块无法导入?

python - 测试 "i"是否不是 "x"或 "y"(Python3)