我正在使用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}$
您需要使用numpy将readX的数据类型更改为int或float64。初始化OptimizedX之前的astype()函数。同时将endog更改为readY
相关问题 更多 >
编程相关推荐