Python机器学习准确性评分与意见

时间:2017-10-10 08:54:19

标签: python algorithm machine-learning

所以目前我正在尝试许多不同的机器学习模型(KNN,Kmeans,神经网络,决策树等等。为了找出最适合我的情况的模型。我被困在哪个部分我的算法基于意见。下面是关于X特征的单一条目:

X-array([  96255.,  114452.,  177551.,  141049.,  170292.,    8155.,
               502.,     683.])

以下是输入要素的期望Y分数样本集,如上所示:

Y-array([ 70.,  60.,  70.,  70.,  70.,  65.,  50.,  40.,  60.,  80.,  70.,
        50.,  90.,  70.,  70.,  70.,  60.,  30.,  50.,  80.,  70.,  75.,
        80.,  70.,  80.,  70.,  80.,  60.,  70.,  70.,  60.,  70.,  60.,
        60.,  70.,  60.,  65.,  70.,  70.,  50.,  60.,  40.,  60.,  80.,
        75.,  70.])

现在是棘手的部分,期望的Y值具有相同的输入特征。例如,所描述的X阵列可以具有与之匹配的以下分数:70,60,50,70,65。既然这些都是人们的意见,那么就没有对错,这就是我希望模型找到的东西。但是当试图预测所有模型的准确性时(看哪个是最好的模型)。我得到的结果很低(显然),因为它永远不会将单个值与多个期望值匹配。是否有一种很好的方法来处理意见和预测意见?欢迎提示和建议。

只是为了清除,通常我用以下方法转换数据:

scaler = StandardScaler()
x = scaler.fit_transform(x)

我目前用以下方法测试准确度:

clf_NeuralNetwork.score(X_test, y_test)

我使用K-Fold算法来分割测试和训练数据,以免过度拟合数据。提前谢谢!

小更新:我目前很想使用如下模型:

i = 0
j = 0
score = 0
for prediction in neigh1.predict(X_test):
    print(prediction)
    for predictedScore in neigh1.classes_:
        if predictedScore == y_train[i]:
            print(predictionMatrix[i][j])
            score = score + (predictionMatrix[i][j] * 100)
            print(score)
        j = j + 1;
    j=0
    i = i + 1

print(score/i)

它采用正确答案的概率并计算模型关闭程度的准确性(使50/50分割对于该情况仍为50%准确度)。

1 个答案:

答案 0 :(得分:0)

这在很大程度上取决于您尝试解决的问题和数据。尝试深入挖掘数据点,绘制一些直方图和相关图。 总体树对于可以分成若干个离散块的数据是有益的,其中回归模型(和NN)更适合于找到连续关系。
您不必缩放功能以在决策树中使用,但我建议使用带有截断的常规缩放器来表示回归模型。
基本上,我强烈建议从XGBoost开始作为基线,然后尝试用更简单的解释模型来打败它。