Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我的模型是不是太合适了?价值观似乎太好而不真实_Python_Numpy_Machine Learning_Scikit Learn_Classification - Fatal编程技术网

Python 我的模型是不是太合适了?价值观似乎太好而不真实

Python 我的模型是不是太合适了?价值观似乎太好而不真实,python,numpy,machine-learning,scikit-learn,classification,Python,Numpy,Machine Learning,Scikit Learn,Classification,我正在使用这段代码生成测试和训练数据集,为其安装分类器,并返回几个度量。然而,我的成绩非常好。我是不是太合适了,或者只是太多疑了 #! /usr/bin/env python ''' @author: nelson-liu ''' import pandas as pd import numpy as np import scipy as sp from sklearn.ensemble import RandomForestClassifier from sklearn import pre

我正在使用这段代码生成测试和训练数据集,为其安装分类器,并返回几个度量。然而,我的成绩非常好。我是不是太合适了,或者只是太多疑了

#! /usr/bin/env python
'''
@author: nelson-liu
'''

import pandas as pd
import numpy as np
import scipy as sp
from sklearn.ensemble import RandomForestClassifier
from sklearn import preprocessing
from sklearn.metrics import accuracy_score
from sklearn.cross_validation import train_test_split
from sklearn.cross_validation import KFold
from sklearn.cross_validation import cross_val_score
from sklearn.metrics import mean_squared_error


alldata = pd.read_csv('alldata60.csv')

cols = [col for col in alldata.columns if col not in ['Survival months', 'Survived']]

X = alldata[cols].values
y = alldata["Survived"].values

Xr, Xt, yr, yt = train_test_split(X, y, random_state=6131997)
rfc = RandomForestClassifier(n_estimators=2000, oob_score=True)
rfc.fit(Xr, yr)
ypred = rfc.predict(Xt)
acc = rfc.score(Xt, yt)
scores = cross_val_score(rfc, Xr, yr, cv=10)
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std()*2))
print mean_squared_error(yt, ypred)
print rfc.oob_score_
print accuracy_score(yt,ypred)
print acc
返回的值为:

Accuracy: 0.98 (+/- 0.00)
0.0245367883996 (MSE)
0.975742385929 (oob_score)
0.9754632116 (accuracy score)
0.9754632116 (random forest classifier class' score)
我小心地确保我使用了一个持久的测试集,这将确保如果我确实过度拟合,我会看到糟糕的结果。然而,结果似乎很好。作为一个ML新手,我绝对希望有第二双眼睛来看看


提前谢谢

您是否使用相同的数据集进行培训和测试?也许您的分类问题很简单。如果不知道你的数据是什么样子,很难说。@BartoszKP我正在使用SEER癌症数据库将乳腺癌患者分为存活(诊断后存活60多个月)或未存活(死于癌症@NelsonLiu 1)验证测试集中标签的比率(如果不是50/50,你应该在形成训练/测试集时使用一些特殊形式的抽样来平衡它)。2)使用k倍交叉验证,正如EdChum所建议的那样。你能计算auROC和auPR吗?并给出类平衡:如果你有98%的“1”和2%的“0”,并且你的分类器总是说“1”,那么它的准确率将达到98%,但性能很差。