Search code examples
pythonpandasnumpysklearn-pandas

How to fix Value Error with train_test_split in Python Numpy


I am using sklearn with a numpy array. I have 2 arrays (x, y) and they should be:

test_size=0.2
train_size=0.8

This is my current code:

def predict():

    sample_data = pd.read_csv("includes\\csv.csv")

    x = np.array(sample_data["day"])
    y = np.array(sample_data["balance"])


    x = x.reshape(1, -1)



    y = y.reshape(1, -1)




    print(x)
    print(y)



    X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)



    clf = LinearRegression()
    clf.fit(x_train, y_train)

    clf.score(x_test, y_test)

The error is:

ValueError: With n_samples=1, test_size=0.2 and train_size=None, the resulting train set will be empty. Adjust any of the aforementioned parameters.

, and it appears in the line:

X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)

Any ideas why that appears?


Solution

  • I had that problem. Check the library "scikit-learn". sklearn have problems with the version 0.20.0+ of scikt-learn, try to do:

    Windows: pip uninstall scikit-learn
    Linux: sudo python36 -m pip uninstall scikit-learn

    and install:

    Windows: pip install scikit-learn==0.19.1
    Linux: sudo python36 -m pip install scikit-learn==0.19.1