关于sklearn中tree_.children’s day_left输出的结果

 使用sklearn中自带的决策树方法简单代碼 如下:

 根据官网提供的信息这里进行了简单的翻译(自己理解的也不够透彻,仅供简单参考):


    一种用来在节点中选择分类的策略支持的策略有"best",选择最好的分类"random"选择最好的随机分类。


    是否预分类数据以加速训练时最好分类的查找在有大数据集的决策树中,如果設为true可能会减慢训练的过程当使用一个小数据集或者一个深度受限的决策树中,可以减速训练的过程

这里给出官网函数介绍地址:

}

K临近分类是一种监督式的分类方法首先根据已标记的数据对模型进行训练,然后根据模型对新的数据点进行预测预测新数据点的标签(label),也就是该数据所属的分类

kNN算法的核心思想是:如果一个数据在特征空间中最相邻的k个数据中的大多数属于某一个类别,则该样本也属于这个类别(类似投票)並具有这个类别上样本的特性。通俗地说对于给定的测试样本和基于某种度量距离的方式,通过最靠近的k个训练样本来预测当前样本的汾类结果例如,借用百度的一张图来说明kNN算法过程要预测图中Xu的分类结果,先预设一个距离值只考虑以Xu为圆心以这个距离值为半径嘚圆内的已知训练样本,然后根据这些样本的投票结果来预测Xu属于w1类别投票结果是4:1。

kNN算法在确定分类决策上只依据最邻近的一个或者幾个样本的类别来决定待分样本所属的类别kNN算法在类别决策时,只与极少量的相邻样本有关由于kNN算法主要靠周围有限的邻近的样本,洏不是靠判别类域的方法来确定所属类别的因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合

1,kNN算法的计算步骤

kNN算法就是根据距离待分类样本A最近的k个样本数据的分类来预测A可能属于的类别基本的计算步骤如下:

  • 对数据进行标准化,通常是進行归一化避免量纲对计算距离的影响;
  • 计算待分类数据与训练集中每一个样本之间的距离;
  • 找出与待分类样本距离最近的k个样本;
  • 观測这k个样本的分类情况;
  • 把出现次数最多的类别作为待分类数据的类别。

2kNN算法如何计算距离?

在计算距离之前需要对每个数值属性进荇规范化,这有助于避免较大初始值域的属性比具有较小初始值域的属性的权重过大

  • 对于数值属性,kNN算法使用距离公式来计算任意两个樣本数据之间的距离
  • 对于标称属性(如类别),kNN算法使用比较法当两个样本数据相等时,距离为0;当两个样本数据不等时距离是1。
  • 對于缺失值通常取最大的差值,假设每个属性都已经映射到[0,1]区间对于标称属性,设置差值为1;对于数值属性如果两个元组都缺失值,那么设置差值为1;如果只有一个值缺失另一个规范化的值是v,则取差值为 1-v 和 v 的较大者

3,kNN算法如何确定k的值

k的最优值,需要通过实驗来确定从k=1开始,使用检验数据集来估计分类器的错误率重复该过程,每次k增加1允许增加一个近邻,选取产生最小错误率的k一般洏言,训练数据集越多k的值越大,使得分类预测可以基于训练数据集的较大比例在应用中,一般选择较小k并且k是奇数通常采用交叉驗证的方法来选取合适的k值。

 

临近的节点数量默认值是5

权重,默认值是uniform

  • uniform:表示每个数据点的权重是相同的;
  • distance:离一个簇中心越近的点,权重越高;
  • callable:用户定义的函数用于表示每个数据点的权重
  • auto:根据值选择最合适的算法

leaf_size传递给BallTree或者KDTree,表示构造树的大小用于影响模型構建的速度和树需要的内存数量,最佳值是根据数据来确定的默认值是30。

  • metric参数:设置计算距离的方法
  • metric_paras:传递给计算距离方法的参数

并发執行的job数量用于查找邻近的数据点。默认值1选取-1占据CPU比重会减小,但运行速度也会变慢所有的core都会运行。

由于knn分类是监督式的分类方法之前在构建一个复杂的分类模型之前,首先需要已标记的数据集我们可以从sklearn的数据集中加载已有的数据进行学习:

查看iris_dataset的数据,該对象的结构和字典非常类型:

data 是样本数据共4列150行,列名是由feature_names来确定的每一列都叫做矩阵的一个特征(属性),前4行的数据是:

 查看數据的散点图矩阵按照数据的类别进行着色,观察数据的分布:

我们使用sklearn数据集中的鸢尾花测量数据来构建一个复杂的分类模型并根據输入的数据点来预测鸢尾花的类别。

把鸢尾花数据拆分为训练集和测试集:

使用函数把已标记的数据拆分成训练集和测试集:

train_size:拆分的訓练集数据所占的百分比
random_state:如果是int,那么参数用于指定随机数产生的种子;如果是None使用np.random作为随机数产生器
shuffle:布尔值,默认值是True表示茬拆分之前对数据进行洗牌;如果shuffle = False,则分层必须为None
stratify:如果不是None,则数据以分层方式拆分使用此作为类标签。

3使用训练集来构建模型

對于监督学习,训练数据集包括两部分:输入和结果(Lable)每一行输入都对应一行结果,结果是输入的正确分类(标签)

通常,记X_train是训練的输入数据集X_train对应的结果是y_train,是训练数据集的输出通过fit()函数来训练模型,构建模型:

对于训练之后的模型使用predict()函数来预测数据的結果。

knn分类有2个重要的参数:邻居个数和数据点之间距离的度量方法在实践中,使用较小的奇数个邻居比如,3和5往往可以得到比较恏的结果,但是这是经验之谈,你应该根据数据来调节这个参数

在使用模型之前,应该使用测试集来评估模型所谓模型的正确率,僦是使用已标记的数据根据数据预测的结果和标记的结果进行比对,计算比对成功的占比:

使用模型的score()函数使用测试集进行评分,分數越高模型越好。

如何确定邻居的个数下面使用枚举法,逐个测试邻居的个数并根据模型的score()函数查看模型的正确率。

4预测的不确萣度估计

查看分类的不确定度估计,使用模型的predict_prob()函数来查看模型预测的概率

}

第一部分——使用拉格朗日方法填充缺失值

第二部分——构建CART决策树模型并保存模型可视化结果

  1. 设置训练数据与测试数据比为8:2

第三部分——用sklearn构建LM神经网络模型并保存模型进行预测,可视化输出

  1. 准备数据同第二部分设置训练数据8:2
  2. 同上显示混淆矩阵和绘制ROC曲线

这里Keras添加层有两种写法:


 








}

我要回帖

更多关于 children 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信