携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
1. 数据标准化(z-score)的前提是数据必须是正态或近似正态分布,如果对不是近似正态或正态分布分布的数据进行了数据标准化,那么很多时候会对几乎所有预测分类算法造成负面影响,但对神经网络影响不大。
2. 如果你是以预测为目的,那么数据标准化是没有必要的;如果你是以选参为目地,数据标准化很有必要。比如岭回归选参。
3. Lasso回归的选参与岭回归不同,lasso回归不涉及系数比较选参,因此不必要进行数据标准化,假如数据标准化的话,通常不会带来预测效果的明显改善。
4. 在进行聚类和分类时,只要符合标准化条件,均要尽量进行标准化,如果不符合条件,不要进行标准化。
5. 当数据不符合标准化条件,但又想标准化,比如神经网络分类时,可以进行归一化。
from sklearn.ensemble import RandomForestClassifier
参数
n_estimators: 随机森林中树的棵树,默认是10棵。
criterion: string, optional (default=”gini”)
用于测量分割质量的函数。支持的标准是基尼杂质的基尼系数和信息增益的熵。注意:这个参数是特指于树的。
max_depth : integer or None, optional (default=None)
树的最大深度。如果没有,则展开节点,直到所有叶节点都是纯叶节点,或者直到所有叶节点包含少于最小样本分裂值的样本。
min_samples_split : int, float, optional (default=2)
分割内部节点所需的最小样本数:
如果int,则考虑min_samples_split为最小样本数。
如果是float,则min_samples_split为一个分数,并且ceil(min_samples_split * n_samples)为每个分裂的最小样本数。
min_samples_leaf : int, float, optional (default=1)
叶节点上所需的最小样本数。任何深度的分裂点只会在每个左右分支上留下至少min_samples_leaf个训练样本时才会被考虑。这可能有平滑模型的效果,特别是在回归中。
如果int,则考虑min_samples_leaf为最小样本数。
如果是float,则min_samples_leaf为一个分数,并且ceil(min_samples_leaf * n_samples)是每个叶节点的最小样本数。
min_weight_fraction_leaf : float, optional (default=0.)
叶节点所需的最小的所有输入样本的全部权值之和。
max_features : int, float, string or None, optional (default=”auto”)
在寻找最佳分割时要考虑的特性数量
如果是int,则在每个分割处考虑max_features个特征。
如果是float,那么max_features是一个分数,并且有int(max_features * n_features)个特征在每个分割处被考虑。
如果是auto,则max features=sqrt(n_features)。
如果是sqrt,那么max features=sqrt(n_features)(与auto相同)。
如果log2,则max features=log2(n_features)。
如果没有,则max features=n_features。
max_leaf_nodes : int or None, optional (default=None)
以最佳优先方式生成带有max_leaf_nodes的树。最佳节点定义为杂质的相对减少。如果None,则叶节点数量不受限。
bootstrap : boolean, optional (default=True)
构建树时是否使用带有放回的随机抽样方法抽取样例。如果为False,则使用整个数据集构建每个树。
oob_score : bool (default=False)
是否采用袋外样本来评估模型精度。默认值是False,推荐设置为True。
class_weight : dict, list of dicts, “balanced”, “balanced_subsample” or None, optional (default=None)
以{class_label:weight}的形式,建立与类关联的权重。如果没有给出,所有的类都应该有权重1。对于多输出问题,可以按照与y的列相同的顺序提供dict列表。
"balanced"模式,使用y值自动调整权重,该模式类别权重与输入数据中的类别频率成反比,
即n_samples / (n_classes * np.bincount(y)),分布为第n个类别对应的实例数。
"balanced_subsample"模式和"balanced"模式类似,只是它计算使用的是有放回式的取样中取得样本数,而不是总样本数
剩下的内容请参考决策树!