Logisti c Коэффициент регрессии - PullRequest
0 голосов
/ 16 января 2020

Мне нужна помощь в Logisti c Регрессия. Ниже приведены мои данные:

ID        | Mach_1  | Mach_2 | Mach_3  | Mach_4 | Mach_5 | ..Mach300 | Rejected Unit (%) | Yield(%)
127189.11     1         0        1         1        1          0            0.23             98.0%
178390.11     0         0        0         1        0          0            0.10             90.0%
902817.11     1         0        1         0        1          0            0.60             94.0%
DSK1201.11    1         0        0         0        1          0            0.02             99.98%

У меня около 300 столбцов махов и 2K строк. Я хочу предсказать для каждой машины, какой процент от нее вносит вклад в отклоненный блок. Я хочу знать, какая машина является отклоненной единицей.

Я выполнил некоторую часть кодирования, однако я столкнулся с некоторой ошибкой, которую не понимаю и как ее решить. Ниже мой код:

import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder
from sklearn.cross_validation import train_test_split

df = pd.read_csv('Data.csv')

#Convert ID into numerical
le = LabelEncoder()
labelencoder.fit_transform(df[:,0])

#Separate target variable and other columns
X = df.drop('Rejected Unit (%)',1)
y = df['Rejected Unit (%)']

#Split data into training and testing sets
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.25,random_state=0)
#Get the coefficient for each features column
import statsmodels.api as sm
model = sm.Logit(y_train,X_train)
res = mod.fit()
print(res.summary())

Сначала это мой код, затем я получаю сообщение об ошибке.

ValueError: endog must be in the unit interval

Затем я масштабирую свой y (целевая переменная), затем я Получение другой ошибки, которую я не знаю, почему и как ее решить.

Это мой последний код после масштабирования данных:

import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder
from sklearn.cross_validation import train_test_split

df = pd.read_csv('Data.csv')

#Convert ID into numerical
le = LabelEncoder()
labelencoder.fit_transform(df[:,0])

#Separate target variable and other columns
X = df.drop('Rejected Unit (%)',1)
y = df['Rejected Unit (%)']

#scale target variable
from sklearn.preprocessing import MinMaxScaler
y_reshape = y.values.reshape(-1,1)
scaler = MinMaxScaler()
scaler.fit(y_reshape)
#change the numpy array of y_scale into dataframe
y = pd.DataFrame(y_scale)


#Split data into training and testing sets
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.25,random_state=0)
#Get the coefficient for each features column
import statsmodels.api as sm
model = sm.Logit(y_train,X_train)
res = mod.fit()
print(res.summary())

Затем я получаю ошибку:

enter image description here

Кто-нибудь может мне помочь с этим?

...