Я использую два разных алгоритма классификации в моей логистической регрессии данных и наивных байках, но это дает мне такую же точность, даже если я изменю коэффициент подготовки и тестирования данных. Ниже приведен код, который я используюКак проверить классификацию чеков, используя sklearn
import pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
df = pd.read_csv('Speed Dating.csv', encoding = 'latin-1')
X = pd.DataFrame()
X['d_age'] = df ['d_age']
X['match'] = df ['match']
X['importance_same_religion'] = df ['importance_same_religion']
X['importance_same_race'] = df ['importance_same_race']
X['diff_partner_rating'] = df ['diff_partner_rating']
# Drop NAs
X = X.dropna(axis=0)
# Categorical variable Match [Yes, No]
y = X['match']
# Drop y from X
X = X.drop(['match'], axis=1)
# Transformation
scalar = StandardScaler()
X = scalar.fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Logistic Regression
model = LogisticRegression(penalty='l2', C=1)
model.fit(X_train, y_train)
print('Accuracy Score with Logistic Regression: ', accuracy_score(y_test, model.predict(X_test)))
#Naive Bayes
model_2 = GaussianNB()
model_2.fit(X_train, y_train)
print('Accuracy Score with Naive Bayes: ', accuracy_score(y_test, model_2.predict(X_test)))
print(model_2.predict(X_test))
Возможно ли, чтобы каждый раз точность была такой же?
Это из-за вашего ввода, 'X' является' numpy array' и target, 'y' a' pandas series' при вызове 'train_test_split' несоответствия в типах, не влияющих на точность модели? Вы можете использовать 'y' в качестве массива с использованием' y.values' и действительно проверить, если это проблема. –
Это была одна из проблем, но я решил ее преобразовать все в dataframe, но все же я получаю аналогичную точность. Фактически я обнаружил, что точность, например, составляет 80%, потому что 80% тестовых данных содержат нули, поэтому на самом деле модель вообще не работает. – muazfaiz