Я применяю обратное исключение, используя statsmodels.api, и код выдает эту ошибку: `TypeError: ufunc 'isfinite' не поддерживается для типов ввода, и входы не могут быть безопасно приведены к любым поддерживаемым типам в соответствии с правилом приведения ''safe' '
Понятия не имею, как ее решить
вот код
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformer
import statsmodels.api as smf
data = pd.read_csv('F:/Py Projects/ML_Dataset/50_Startups.csv')
dataSlice = data.head(10)
#get data column
readX = data.iloc[:,:4].values
readY = data.iloc[:,4].values
#encoding c3
transformer = ColumnTransformer(
transformers=[("OneHot",OneHotEncoder(),[3])],
remainder='passthrough' )
readX = transformer.fit_transform(readX.tolist())
readX = readX[:,1:]
trainX, testX, trainY, testY = train_test_split(readX,readY,test_size=0.2,random_state=0)
lreg = LinearRegression()
lreg.fit(trainX, trainY)
predY = lreg.predict(testX)
readX = np.append(arr=np.ones((50,1),dtype=np.int),values=readX,axis=1)
optimisedX = readX[:,[0,1,2,3,4,5]]
ols = smf.OLS(endog=readX, exog=optimisedX).fit()
print(ols.summary())
вот сообщение об ошибке
Traceback (most recent call last):
File "F:/Py Projects/ml/BackwardElimination.py", line 33, in <module>
ols = smf.OLS(endog=readX, exog=optimisedX).fit()
File "C:\Users\udit\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\regression\linear_model.py", line 838, in __init__
hasconst=hasconst, **kwargs)
File "C:\Users\udit\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\regression\linear_model.py", line 684, in __init__
weights=weights, hasconst=hasconst, **kwargs)
File "C:\Users\udit\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\regression\linear_model.py", line 196, in __init__
super(RegressionModel, self).__init__(endog, exog, **kwargs)
File "C:\Users\udit\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\model.py", line 216, in __init__
super(LikelihoodModel, self).__init__(endog, exog, **kwargs)
File "C:\Users\udit\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\model.py", line 68, in __init__
**kwargs)
File "C:\Users\udit\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\model.py", line 91, in _handle_data
data = handle_data(endog, exog, missing, hasconst, **kwargs)
File "C:\Users\udit\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\data.py", line 635, in handle_data
**kwargs)
File "C:\Users\udit\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\data.py", line 80, in __init__
self._handle_constant(hasconst)
File "C:\Users\udit\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\data.py", line 125, in _handle_constant
if not np.isfinite(ptp_).all():
TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''