动手学数据分析——task05

IPython

        IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。IPython 是基于BSD 开源的。 IPython 为交互式计算提供了一个丰富的架构,包含:

  • 强大的交互式shell
  • 供Jupyter notebooks使用的Jupyter内核
  • 交互式的数据可视化工具
  • 灵活、可嵌入的解释器
  • 易于使用,高性能的并行计算工具

%matplotlib inline

       用在Jupyter notebook中具体作用是当你调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接在你的python console里面生成图像。

sklearn模型算法选择路径图

数据集划分方法

  • 留出法 

       直接将数据集 D 划分为两个互斥的集合,其中一个集合作为训练集 S,另一个作为测试集 T。在划分的时候要尽可能保证数据分布的一致性,即避免因数据划分过程引入额外的偏差而对最终结果产生影响。为了保证数据分布的一致性,通常我们采用 分层采样 的方式来对数据进行采样。

  • k 折交叉验证

       将数据集 D 分为 k 份,其中的 k-1 份作为训练集,剩余的那一份作为测试集,这样就可以获得 k 组训练/测试集,可以进行 k 次训练与测试,最终返回的是 k 个测试结果的均值。划分依然是依据 分层采样 的方式来进行。对于交叉验证法,其 k 值的选取往往决定了评估结果的稳定性和保真性,通常 k 值选取 10 。

  • 自助法

       每次从数据集D中取一个样本作为训练集中的元素,然后把该样本放回,重复该行为 m 次,这样我们就可以得到大小为m的训练集,在这里面有的样本重复出现,有的样本则没有出现过,我们把那些没有出现过的样本作为测试集。

切割数据集

sklearn.model_selection.train_test_split(*arraystest_size=Nonetrain_size=Nonerandom_state=Noneshuffle=Truestratify=None)

将数组或矩阵拆分为随机训练和测试子集

*arrays:长度或者shape[0]相同的可索引序列允许的输入是列表、numpy数组、scipy-sparse矩阵、或者是pandas dataframe
test_size:float, int或None(默认)

如果是浮点数,则应该在0.0和1.0之间,表示要测试集占总数据集的比例。

如果是int类型,表示测试集的绝对数量。

如果是None,则将该值设置为训练集train_size大小的补数;如果train_size也是None,则将其设置为0.25。

train_size:float, int, or None(默认=None)

如果是浮点数,则应该在0.0和1.0之间,表示要训练集占数据集的比例。

如果是int类型,表示训练集的绝对数量。

如果是Nnone,该值将自动设置为测试集大小的补数。

 random_state:int,RandomState实例或None(默认)

如果是int类型,random_state是随机数生成器使用的种子;

如果是RandomState实例,random_state是随机数生成器;

如果是None,随机数生成器就是np.random使用的RandomState实例,每次生成结果均不同。

shuffle:可选参数,boolean(默认为True)表示是否在分割之前重新洗牌数据。只有在stratify=None时,才允许shuffle=False。
stratify:array-like 或者 None (default=None)如果不是None,则以分层的方式分割数据,并将其作为类标签。

逻辑回归模型

class sklearn.linear_model.LogisticRegression(penalty='l2'*dual=Falsetol=0.0001C=1.0fit_intercept=Trueintercept_scaling=1class_weight=Nonerandom_state=Nonesolver='lbfgs'max_iter=100multi_class='auto'verbose=0warm_start=Falsen_jobs=Nonel1_ratio=None)

  • fitX , y , sample_weight = None ):根据给定的训练数据拟合模型
  • scoreX , y , sample_weight = None ):返回给定测试数据和标签的平均准确度
    from sklearn.linear_model import LogisticRegression
    
    lr = LogisticRegression()
    lr.fit(X_train, y_train)
    
    print("Training set score: {:.2f}".format(lr2.score(X_train, y_train)))
    print("Testing set score: {:.2f}".format(lr2.score(X_test, y_test)))

随机森林分类模型 

class sklearn.ensemble.RandomForestClassifier(n_estimators=100*criterion='gini'max_depth=Nonemin_samples_split=2min_samples_leaf=1min_weight_fraction_leaf=0.0max_features='auto'max_leaf_nodes=Nonemin_impurity_decrease=0.0min_impurity_split=Nonebootstrap=Trueoob_score=Falsen_jobs=Nonerandom_state=Noneverbose=0warm_start=Falseclass_weight=Noneccp_alpha=0.0max_samples=None)

n_estimators森林里(决策)树的数目
criterion衡量分裂质量的性能(函数)。 受支持的标准是基尼不纯度的"gini",和信息增益的"entropy"(熵)
max_depth:整数或者无值,可选的(默认为None)决策)树的最大深度。如果值为None,那么会扩展节点,直到所有的叶子是纯净的,或者直到所有叶子包含少于min_sample_split的样本
min_samples_split:整数,浮点数,可选的(默认值为2)分割内部节点所需要的最小样本数量
min_samples_leaf需要在叶子结点上的最小样本数量
  • fitX , y , sample_weight = None )
  • predictX ):预测X的类别
  • scoreX , y , sample_weight = None ) 
  • predict_proba(X):预测X的类别概率
from sklearn.ensemble import RandomForestClassifier

rfc = RandomForestClassifier()
rfc.fit(X_train, y_train)

pred = lr.predict(X_train)
pred[:10]

pred_proba = lr.predict_proba(X_train)
pred_proba[:10]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值