statsmodels引发TypeError:输入类型不支持ufunc“isfinite”

2024-09-30 03:22:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用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())

这是错误消息

^{pr2}$

Tags: fromtestimportapi类型dataas错误
1条回答
网友
1楼 · 发布于 2024-09-30 03:22:17

您需要使用numpy将readX的数据类型更改为int或float64。初始化OptimizedX之前的astype()函数。同时将endog更改为readY

readX.astype('float64')
optimisedX = readX[:,[0,1,2,3,4,5]]
ols = smf.OLS(endog=readY, exog=optimisedX).fit()
print(ols.summary())

相关问题 更多 >

    热门问题