ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测

简介: ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测

输出结果


初步处理后的 X_train: (984, 474)

  (0, 0)    31.19418104265403

 (0, 78)    1.0

 (0, 82)    1.0

 (0, 366)    1.0

 (0, 391)    1.0

 (0, 435)    1.0

 (0, 437)    1.0

 (0, 473)    1.0

 (1, 0)    31.19418104265403

 (1, 73)    1.0

 (1, 79)    1.0

 (1, 296)    1.0

 (1, 389)    1.0

 (1, 397)    1.0

 (1, 436)    1.0

 (1, 446)    1.0

 (2, 0)    31.19418104265403

 (2, 78)    1.0

 (2, 82)    1.0

 (2, 366)    1.0

 (2, 391)    1.0

 (2, 435)    1.0

 (2, 437)    1.0

 (2, 473)    1.0

 (3, 0)    32.0

 :    :

 (980, 473)    1.0

 (981, 0)    12.0

 (981, 73)    1.0

 (981, 81)    1.0

 (981, 84)    1.0

 (981, 390)    1.0

 (981, 435)    1.0

 (981, 436)    1.0

 (981, 473)    1.0

 (982, 0)    18.0

 (982, 78)    1.0

 (982, 81)    1.0

 (982, 277)    1.0

 (982, 390)    1.0

 (982, 435)    1.0

 (982, 437)    1.0

 (982, 473)    1.0

 (983, 0)    31.19418104265403

 (983, 78)    1.0

 (983, 82)    1.0

 (983, 366)    1.0

 (983, 391)    1.0

 (983, 435)    1.0

 (983, 436)    1.0

 (983, 473)    1.0 经过FS处理后的 X_train_fs: (984, 94)

  (0, 93)    1.0

 (0, 85)    1.0

 (0, 83)    1.0

 (0, 76)    1.0

 (0, 71)    1.0

 (0, 27)    1.0

 (0, 24)    1.0

 (0, 0)    31.19418104265403

 (1, 84)    1.0

 (1, 74)    1.0

 (1, 63)    1.0

 (1, 25)    1.0

 (1, 19)    1.0

 (1, 0)    31.19418104265403

 (2, 93)    1.0

 (2, 85)    1.0

 (2, 83)    1.0

 (2, 76)    1.0

 (2, 71)    1.0

 (2, 27)    1.0

 (2, 24)    1.0

 (2, 0)    31.19418104265403

 (3, 93)    1.0

 (3, 85)    1.0

 (3, 83)    1.0

 :    :

 (980, 24)    1.0

 (980, 0)    31.19418104265403

 (981, 93)    1.0

 (981, 84)    1.0

 (981, 83)    1.0

 (981, 75)    1.0

 (981, 28)    1.0

 (981, 26)    1.0

 (981, 19)    1.0

 (981, 0)    12.0

 (982, 93)    1.0

 (982, 85)    1.0

 (982, 83)    1.0

 (982, 75)    1.0

 (982, 26)    1.0

 (982, 24)    1.0

 (982, 0)    18.0

 (983, 93)    1.0

 (983, 84)    1.0

 (983, 83)    1.0

 (983, 76)    1.0

 (983, 71)    1.0

 (983, 27)    1.0

 (983, 24)    1.0

 (983, 0)    31.19418104265403








设计思路

image.png


核心代码

class SelectPercentile Found at: sklearn.feature_selection.univariate_selection

class SelectPercentile(_BaseFilter):

   """Select features according to a percentile of the highest scores.

 

   Read more in the :ref:`User Guide <univariate_feature_selection>`.

 

   Parameters

   ----------

   score_func : callable

   Function taking two arrays X and y, and returning a pair of arrays

   (scores, pvalues) or a single array with scores.

   Default is f_classif (see below "See also"). The default function only

   works with classification tasks.

 

   percentile : int, optional, default=10

   Percent of features to keep.

 

   Attributes

   ----------

   scores_ : array-like, shape=(n_features,)

   Scores of features.

 

   pvalues_ : array-like, shape=(n_features,)

   p-values of feature scores, None if `score_func` returned only scores.

 

   Notes

   -----

   Ties between features with equal scores will be broken in an unspecified

   way.

 

   See also

   --------

   f_classif: ANOVA F-value between label/feature for classification tasks.

   mutual_info_classif: Mutual information for a discrete target.

   chi2: Chi-squared stats of non-negative features for classification tasks.

   f_regression: F-value between label/feature for regression tasks.

   mutual_info_regression: Mutual information for a continuous target.

   SelectKBest: Select features based on the k highest scores.

   SelectFpr: Select features based on a false positive rate test.

   SelectFdr: Select features based on an estimated false discovery rate.

   SelectFwe: Select features based on family-wise error rate.

   GenericUnivariateSelect: Univariate feature selector with configurable mode.

   """

   def __init__(self, score_func=f_classif, percentile=10):

       super(SelectPercentile, self).__init__(score_func)

       self.percentile = percentile

 

   def _check_params(self, X, y):

       if not 0 <= self.percentile <= 100:

           raise ValueError(

               "percentile should be >=0, <=100; got %r" % self.percentile)

 

   def _get_support_mask(self):

       check_is_fitted(self, 'scores_')

       # Cater for NaNs

       if self.percentile == 100:

           return np.ones(len(self.scores_), dtype=np.bool)

       elif self.percentile == 0:

           return np.zeros(len(self.scores_), dtype=np.bool)

       scores = _clean_nans(self.scores_)

       treshold = stats.scoreatpercentile(scores,

           100 - self.percentile)

       mask = scores > treshold

       ties = np.where(scores == treshold)[0]

       if len(ties):

           max_feats = int(len(scores) * self.percentile / 100)

           kept_ties = ties[:max_feats - mask.sum()]

           mask[kept_ties] = True

       return mask



相关文章
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
1455 6
|
机器学习/深度学习 算法 数据可视化
利用SVM(支持向量机)分类算法对鸢尾花数据集进行分类
本文介绍了如何使用支持向量机(SVM)算法对鸢尾花数据集进行分类。作者通过Python的sklearn库加载数据,并利用pandas、matplotlib等工具进行数据分析和可视化。
1167 70
|
5月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
497 0
|
5月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
326 2
|
6月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
307 3
|
6月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
219 6
|
5月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
256 8
|
5月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
291 8
|
5月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
6月前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
341 14

热门文章

最新文章