Pas de boucle correspondant à la spécifié de la signature et de l'erreur de casting
Je suis débutant en python et l'apprentissage machine . Je reçois ci-dessous d'erreur lorsque j'essaie d'ajustement des données en statsmodels.de la formule.api des moindres carrés ordinaires.ajustement()
Traceback (most recent call last):
File "", line 47, dans
regressor_OLS = sm.MCO(y , X_opt).ajustement()Fichier
"E:\Anaconda\lib\site-packages\statsmodels\regression\linear_model.py",
ligne 190, dans l'ajustement
auto.pinv_wexog, singular_values = pinv_extended(de soi.wexog)Fichier "E:\Anaconda\lib\site-packages\statsmodels\tools\tools.py",
ligne 342, dans pinv_extended
u, s, vt = np.linalg.svd(X, 0)Fichier "E:\Anaconda\lib\site-packages\numpy\linalg\linalg.py", de la ligne de
En 1404, dans svd
u, s, vt = gufunc(une, signature=signature, extobj=extobj)TypeError: Pas de boucle correspondant à la spécifié de la signature et de la coulée a été
trouvé pour ufunc svd_n_s
code
#Importing Libraries
import numpy as np # linear algebra
import pandas as pd # data processing
import matplotlib.pyplot as plt #Visualization
#Importing the dataset
dataset = pd.read_csv('Video_Games_Sales_as_at_22_Dec_2016.csv')
#dataset.head(10)
#Encoding categorical data using panda get_dummies function . Easier and straight forward than OneHotEncoder in sklearn
#dataset = pd.get_dummies(data = dataset , columns=['Platform' , 'Genre' , 'Rating' ] , drop_first = True ) #drop_first use to fix dummy varible trap
dataset=dataset.replace('tbd',np.nan)
#Separating Independent & Dependant Varibles
#X = pd.concat([dataset.iloc[:,[11,13]], dataset.iloc[:,13: ]] , axis=1).values #Getting important variables
X = dataset.iloc[:,[10,12]].values
y = dataset.iloc[:,9].values #Dependant Varible (Global sales)
#Taking care of missing data
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN' , strategy = 'mean' , axis = 0)
imputer = imputer.fit(X[:,0:2])
X[:,0:2] = imputer.transform(X[:,0:2])
#Splitting the dataset into the Training set and Test set
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.2 , random_state = 0)
#Fitting Mutiple Linear Regression to the Training Set
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train,y_train)
#Predicting the Test set Result
y_pred = regressor.predict(X_test)
#Building the optimal model using Backward Elimination (p=0.050)
import statsmodels.formula.api as sm
X = np.append(arr = np.ones((16719,1)).astype(float) , values = X , axis = 1)
X_opt = X[:, [0,1,2]]
regressor_OLS = sm.OLS(y , X_opt).fit()
regressor_OLS.summary()
Dataset
Ne pouvais pas trouver quelque chose d'utile pour résoudre ce problème sur stack overflow ou google .
- Regardez votre
X_opt
. Ce doit être un DataFrame avec uniquement des valeurs numériques, de préférence float64. Le traceback signifie probablement que l'un des dtypes est faux.X_opt.dtypes
ouX_opt.dtype
si c'est un numpy ndarray.
Vous devez vous connecter pour publier un commentaire.
essayer spécifiant la
Lorsque la matrice est créée.
Exemple:
Espère que cela fonctionne!
Comme suggéré précédemment, vous devez vous assurer X_opt est un type float.
Par exemple, dans votre code, il devrait ressembler à ceci: