Numpy: dsTypeError: ufunc 'isfinite' não é compatível com os tipos de entrada e as entradas não podem ser coagidas com segurança para nenhum tipo compatível de acordo com a regra de lançamento '' seguro ''

Criado em 27 dez. 2019  ·  6Comentários  ·  Fonte: numpy/numpy

Estou executando um programa em Python e tento gerar resultados de estatísticas de uma matriz.
A linha de código:
regressor_OLS = sm.OLS (y, X_opt) .fit ()
recebe um erro elaborado.

Este é o código

Regressão linear múltipla

Importando Bibliotecas

importar numpy como np
import matplotlib.pyplot as plt
importar pandas como pd

importando o conjunto de dados

dataset = pd.read_csv ('50_Startups.csv')

Obtendo as variáveis ​​independentes

X = dataset.iloc [:,: - 1] .values
y = dataset.iloc [:, 4] .values
imprimir (conjunto de dados)

Codificação de dados categóricos

Codificando a Variável Independente

de sklearn.preprocessing import OneHotEncoder
de sklearn.compose import ColumnTransformer
ct = ColumnTransformer ([("Country", OneHotEncoder (), [3])], resto = 'passthrough')
X = ct.fit_transform (X)

Evitando a armadilha de variável fictícia

X = X [:, 1:]

Dividir o conjunto de dados em conjunto de treinamento e conjunto de teste

de sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,2, random_state = 0)

Ajustando o modelo de regressão linear múltipla ao conjunto de treinamento

de sklearn.linear_model import LinearRegression
regressor = LinearRegression ()
regressor.fit (X_train, y_train)

Prevendo os resultados do conjunto de testes

y_pred = regressor.predict (X_test)

Construindo o modelo ideal usando eliminação reversa

import statsmodels.api as sm

Adicionar colunas de 1

X = np.append (arr = np.ones ((50,1)). Astype (int), valores = X, eixo = 1)
X_opt = X [:, [0,1,2,3,4,5]]

Modelo de regressão linear múltipla --- OLS

regressor_OLS = sm.OLS (y, X_opt) .fit ()
regressor_OLS.summary ()

Reproduzindo exemplo de código:

`` `python
importar numpy como np

Mensagem de erro:

ufunc 'isfinite' não é suportado para os tipos de entrada, e as entradas não puderam ser coagidas com segurança para nenhum tipo suportado de acordo com a regra de fundição '' seguro ''

Arquivo "C: UsersmoranaDocumentsAIUDEMYMachine Learning A-ZPart 2 - RegressionSection 5 - Multiple Linear Regressionmultiple linear regression.py", linha 46, em
regressor_OLS = sm.OLS (y, X_opt) .fit ()

Arquivo "C: UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", linha 838, em __init__
hasconst = hasconst, ** kwargs)

Arquivo "C: UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", linha 684, em __init__
pesos = pesos, hasconst = hasconst, ** kwargs)

Arquivo "C: UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsregressionlinear_model.py", linha 196, em __init__
super (RegressionModel, self) .__ init __ (endog, exog, ** kwargs)

Arquivo "C: UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", linha 216, em __init__
super (LikelihoodModel, self) .__ init __ (endog, exog, ** kwargs)

Arquivo "C: UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", linha 68, em __init__
** kwargs)

Arquivo "C: UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasemodel.py", linha 91, em _handle_data
data = handle_data (endog, exog, ausente, hasconst, ** kwargs)

Arquivo "C: UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", linha 635, em handle_data
** kwargs)

Arquivo "C: UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", linha 80, em __init__
self._handle_constant (hasconst)

Arquivo "C: UsersmoranaAppDataLocalContinuumanaconda3libsite-packagesstatsmodelsbasedata.py", linha 125, em _handle_constant
se não np.isfinite (ptp _). all ():

TypeError: ufunc 'isfinite' não é compatível com os tipos de entrada e as entradas não podem ser coagidas com segurança para nenhum tipo compatível de acordo com a regra de conversão '' seguro ''

Informações sobre a versão Numpy / Python:

Spyder 4.0.0
1.17.4 3.7.3 (padrão, 24 de abril de 2019, 15:29:51) [MSC v.1915 64 bits (AMD64)]

Comentários muito úteis

Ei!
Seu array X_opt tem um tipo d de objeto e isso pode estar causando um erro. Experimente alterá-lo para flutuar. Por exemplo, você pode usar isto:
X = np.append (arr = np.ones ((50,1)). Astype (int), valores = X, eixo = 1)
X_opt = X [:, [0,1,2,3,4,5]]
X_opt = np.array (X_opt, dtype = float)

Divirta-se: D

Todos 6 comentários

Ei!
Seu array X_opt tem um tipo d de objeto e isso pode estar causando um erro. Experimente alterá-lo para flutuar. Por exemplo, você pode usar isto:
X = np.append (arr = np.ones ((50,1)). Astype (int), valores = X, eixo = 1)
X_opt = X [:, [0,1,2,3,4,5]]
X_opt = np.array (X_opt, dtype = float)

Divirta-se: D

Obrigado @ filip-stolinski pela sua solução

@filip-stolinski Muito obrigado pela sua solução. Definitivamente funciona

Fechando. Reabra ou abra um novo problema, se necessário.

Obrigado @ filip-stolinski

obrigado

Esta página foi útil?
0 / 5 - 0 avaliações