numpy 我不能载入我自己的数据集上scikit学习得到连续的错误

kupeojn6  于 2023-02-04  发布在  其他
关注(0)|答案(1)|浏览(144)

我创建了一个file.txt文件,下一个名称为“archivo”,该文件包含这些行

# Imprime un hola mundo
print("hola mundo")
# definimos variables 2 variables en un entero, luego hacemos suma de variables y luego imprime el resultado
a = 1
b = 3
c = a+b
print(c)
# input para que el usuario de opcion de que quiere escribir
T = input("Ingresa tu Texto aqui >>:  ")
# checamos el texto ingresado en la variable T por el usuario mediante un if, elif, else
if T == "":
    print("No hay Texto")
elif T == "hola":
    print("hola")
else:
    print("Opcion no encontrada")

我已经编写了下一个代码来训练我自己的人工智能

# -*- coding: utf-8 -*-
import os, sys
try:
    from sklearn.neural_network import MLPClassifier
    from sklearn.model_selection import train_test_split
    import json
    import PyPDF2
    import numpy as np
    import pandas as pd 
    from time import sleep
except:
    os.system("pip install scikit-learn")
    os.system("pip install PyPDF2")
    os.system("pip install numpy")
    os.system("pip install json")
    os.system("pip install pandas")
    from sklearn.neural_network import MLPClassifier
    import json
    from time import sleep
    from sklearn.model_selection import train_test_split
    import PyPDF2
    import numpy as np
    import pandas as pd 

# Cargar el archivo .txt
data_set = os.path.join("X:\scripts de python por mi\Scripts por mi\inteligencia artificial\scripts IA por mi\programacion\dataset")
datos = open(rf'{data_set}\archivo.txt').readlines()
#datos = pd.read_csv(rf"{data_set}\archivo.txt")
#datos = np.loadtxt(rf"{data_set}\archivo.txt", delimiter=',')
#X = datos[:,0:-1]
#y = datos[:,-1] 
X = []
y = []
for index, daxt in enumerate(datos):
    fg = daxt.rstrip()
    X.append(fg)
    y.append(index)

# Procesamos el subconjunto de datos en binario para su entrenamiento
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
X = label_encoder.fit_transform(X)

# Normalizar los datos
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X = scaler.fit_transform(X)

# Divido mi conjunto de datos de entrenamiento en pruebas también
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.05)

# Entrenamos el perceptron Multicapa con función Sigmoide y 3 neuronas mas optimizador grandient decent
clf = MLPClassifier(activation='logistic', hidden_layer_sizes=(3,), solver='sgd')
clf.fit(X_train,y_train)

# Realizamos la predicción con el conjunto de datos de prueba
prediccion = clf.predict(X_test)

# Mostramos el f1_score resultante de la clasificación Sirve para ver que tanta precision tuvo la IA
from sklearn.metrics import f1_score
f1_score(X_test, y_test, average="binary")

问题是当我运行.py文件时,我得到以下输出

X:\scripts de python por mi\Scripts por mi\inteligencia artificial\scripts IA por mi\programacion>python test.py
Traceback (most recent call last):
  File "X:\scripts de python por mi\Scripts por mi\inteligencia artificial\scripts IA por mi\programacion\test.py", line 48, in <module>
    X = scaler.fit_transform(X)
        ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\XGreen\AppData\Local\Programs\Python\Python311\Lib\site-packages\sklearn\utils\_set_output.py", line 142, in wrapped
    data_to_wrap = f(self, X, *args, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\XGreen\AppData\Local\Programs\Python\Python311\Lib\site-packages\sklearn\base.py", line 859, in fit_transform
    return self.fit(X, **fit_params).transform(X)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\XGreen\AppData\Local\Programs\Python\Python311\Lib\site-packages\sklearn\preprocessing\_data.py", line 427, in fit
    return self.partial_fit(X, y)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\XGreen\AppData\Local\Programs\Python\Python311\Lib\site-packages\sklearn\preprocessing\_data.py", line 466, in partial_fit
    X = self._validate_data(
        ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\XGreen\AppData\Local\Programs\Python\Python311\Lib\site-packages\sklearn\base.py", line 546, in _validate_data
    X = check_array(X, input_name="X", **check_params)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\XGreen\AppData\Local\Programs\Python\Python311\Lib\site-packages\sklearn\utils\validation.py", line 902, in check_array
    raise ValueError(
ValueError: Expected 2D array, got 1D array instead:
array=[ 3. 14.  5.  8.  9. 10. 15.  6.  7.  4. 13.  0. 11.  2. 12.  1.].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample

我已尝试将我的代码更改为下一个...

# -*- coding: utf-8 -*-
import os, sys
try:
    from sklearn.neural_network import MLPClassifier
    from sklearn.model_selection import train_test_split
    import json
    import PyPDF2
    import numpy as np
    import pandas as pd 
    from time import sleep
except:
    os.system("pip install scikit-learn")
    os.system("pip install PyPDF2")
    os.system("pip install numpy")
    os.system("pip install json")
    os.system("pip install pandas")
    from sklearn.neural_network import MLPClassifier
    import json
    from time import sleep
    from sklearn.model_selection import train_test_split
    import PyPDF2
    import numpy as np
    import pandas as pd 

# Cargar el archivo .txt
data_set = os.path.join("X:\scripts de python por mi\Scripts por mi\inteligencia artificial\scripts IA por mi\programacion\dataset")
datos = open(rf'{data_set}\archivo.txt').readlines()
#datos = pd.read_csv(rf"{data_set}\archivo.txt")
datos = np.loadtxt(rf"{data_set}\archivo.txt", delimiter=',')
X = datos[:,0:-1]
y = datos[:,-1] 
#X = []
#y = []
"""
for index, daxt in enumerate(datos):
    fg = daxt.rstrip()
    X.append(fg)
    y.append(index)
"""

# Procesamos el subconjunto de datos en binario para su entrenamiento
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
X = label_encoder.fit_transform(X)

# Normalizar los datos
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X = scaler.fit_transform(X)

# Divido mi conjunto de datos de entrenamiento en pruebas también
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.05)

# Entrenamos el perceptron Multicapa con función Sigmoide y 3 neuronas mas optimizador grandient decent
clf = MLPClassifier(activation='logistic', hidden_layer_sizes=(3,), solver='sgd')
clf.fit(X_train,y_train)

# Realizamos la predicción con el conjunto de datos de prueba
prediccion = clf.predict(X_test)

# Mostramos el f1_score resultante de la clasificación Sirve para ver que tanta precision tuvo la IA
from sklearn.metrics import f1_score
f1_score(X_test, y_test, average="binary")

但是我得到下一个输出...

X:\scripts de python por mi\Scripts por mi\inteligencia artificial\scripts IA por mi\programacion>python test.py
ValueError: could not convert string to float: 'print("hola mundo")'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "X:\scripts de python por mi\Scripts por mi\inteligencia artificial\scripts IA por mi\programacion\test.py", line 29, in <module>
    datos = np.loadtxt(rf"{data_set}\archivo.txt", delimiter=',')
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\XGreen\AppData\Local\Programs\Python\Python311\Lib\site-packages\numpy\lib\npyio.py", line 1348, in loadtxt
    arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\XGreen\AppData\Local\Programs\Python\Python311\Lib\site-packages\numpy\lib\npyio.py", line 999, in _read
    arr = _load_from_filelike(
          ^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string 'print("hola mundo")' to float64 at row 0, column 1.

我试过用Pandas打开我的.txt文件,但我也得到错误,我不知道如何修复它,如果有人可以帮助我,请,感谢阅读:)注意:代码是用西班牙文编写的,因为我来自西班牙,我编写代码是为了更好地理解它。

uxhixvfz

uxhixvfz1#

必须对输入数据(X)进行整形,以获得(N_samples, N_features)形状。在您的情况下,只有一个要素,因此:

for index, daxt in enumerate(datos):
    fg = daxt.rstrip()
    X.append(fg)
    y.append(index)

#add the following lines
X = np.array(X).reshape(-1,1)
y = np.array(y)

相关问题