![](/img/trans.png)
[英]Why does my accuracy go over 100% on my logistic regression model?
[英]Why am I getting 100% accuracy for my logistic regression model?
导入库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
from sklearn import preprocessing
import seaborn as sns
%matplotlib inline
读取数据
df =pd.read_csv('./EngineeredData_2.csv')
df =df.dropna()
将数据拆分为 x 和 y:
X= df.drop (['Week','Div', 'Date', 'HomeTeam', 'AwayTeam','HTHG', 'HTAG','HTR',
'FTAG', 'FTHG','HGKPP', 'AGKPP', 'FTR'], axis =1)
将 y 变换为整数:
L = preprocessing.LabelEncoder ()
matchresults = L.fit_transform (list (df['FTR']))
y =list(matchresults)
将数据拆分为训练和测试:
from sklearn.model_selection import train_test_split
X_tng,X_tst, y_tng, y_tst =train_test_split (X, y, test_size = 50, shuffle=False)
X_tng.head()
导入类
from sklearn.linear_model import LogisticRegression
实例化模型
logreg = LogisticRegression ()
用数据拟合模型
logreg.fit (X_tng, y_tng)
预测测试数据 y_pred = logreg.predict(X_tst)
acc = logreg. score (X_tst, y_tst)
print (acc)
准确率达到 100% 有意义吗?
问题是您无意中删除了所有功能,只保留了x
中的目标值。 因此,您试图用目标值本身来解释目标值,这当然会给您 100% 的准确性。 您将功能列定义为:
X= df.drop (['Week','Div', 'Date', 'HomeTeam', 'AwayTeam','HTHG', 'HTAG','HTR',
'FTAG', 'FTHG','HGKPP', 'AGKPP', 'FTR'], axis =1)
但是您应该将它们定义为:
X= df.drop('FTR', axis =1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.