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