如何解释ML训练输出

时间:2018-06-26 01:40:39

标签: python pandas numpy machine-learning scikit-learn

我是机器学习的初学者,我正在通过从事Kaggle比赛来学习。我从一个著名的泰坦尼克号生存问题开始,通过试错/从他人那里得到帮助,我可以训练我的数据,但我的问题是:我如何理解输出并进入下一阶段? / p>

这是我的代码:

import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split

train_path = "C:\\Users\\Omar\\Downloads\\Titanic Data\\train.csv"
train_data = pd.read_csv(train_path)

train_data['Sex'] = pd.factorize(train_data.Sex)[0]

columns_of_interest = ['Survived','Pclass', 'Sex', 'Age']
filtered_titanic_data = train_data.dropna(axis=0)

x = filtered_titanic_data[columns_of_interest]
y = filtered_titanic_data.Survived

train_x, val_x, train_y, val_y = train_test_split(x, y, random_state=0)

titanic_model = DecisionTreeRegressor()
titanic_model.fit(train_x, train_y)

val_predictions = titanic_model.predict(val_x)
print(val_predictions)

这是我得到的输出(1个幸存者-0个死亡):

1. 0. 1. 0. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1.

但是我不知道如何使用此输出进行下一步。

1 个答案:

答案 0 :(得分:2)

您现在将val_predictionsval_y进行比较,看看有多少对的!

您使用train_x, train_y来找到模式,将其拟合到val_x上,现在您想看看您的模型有多好!

有多种解决方法!您可以选择评估指标!

from sklearn.metrics import accuracy_score

accuracy_score(val_predictions, val_y)

这里是accuracy_score所代表的链接! http://scikit-learn.org/stable/modules/model_evaluation.html#accuracy-score

准确度分数是评估指标!展望未来,您也可以GridSearchCV自动搜索最佳参数以最大化或最小化评估指标。

您可以在此处阅读有关内容:

  1. http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html
  2. https://stats.stackexchange.com/questions/269300/why-does-sklearn-grid-search-gridsearchcv-return-random-results-on-every-executi