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
importar numpy como np
import matplotlib.pyplot as plt
importar pandas como pd
dataset = pd.read_csv ('50_Startups.csv')
X = dataset.iloc [:,: - 1] .values
y = dataset.iloc [:, 4] .values
imprimir (conjunto de dados)
de sklearn.preprocessing import OneHotEncoder
de sklearn.compose import ColumnTransformer
ct = ColumnTransformer ([("Country", OneHotEncoder (), [3])], resto = 'passthrough')
X = ct.fit_transform (X)
X = X [:, 1:]
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)
de sklearn.linear_model import LinearRegression
regressor = LinearRegression ()
regressor.fit (X_train, y_train)
y_pred = regressor.predict (X_test)
import statsmodels.api as sm
X = np.append (arr = np.ones ((50,1)). Astype (int), valores = X, eixo = 1)
X_opt = X [:, [0,1,2,3,4,5]]
regressor_OLS = sm.OLS (y, X_opt) .fit ()
regressor_OLS.summary ()
`` `python
importar numpy como np
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 ''
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)]
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
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