范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

泰坦尼克生存预测

  最好的学习就是输出,所以虽然这个预测很多人做过了,我还是在这里再做一遍,纯粹是为了自己学习. 前言
  这次预测使用的是Sklearn中的决策树模型: clf = DecisionTreeClassifier(criterion="entropy")
  其中criterion是标准,决定了构造分类树是采用ID3分类树还是CART分类树,对应的取值分别是 entropy  和 gini
  entropy  : 基于信息熵,也就是ID3算法, 实际结果与C4.5相差不大;
  gini  : 默认参数,基于基尼系数. CART算法是基于基尼系数做属性划分的,所以 criterion=gini  时, 实际上执行的是CART算法.
  其完整参数: DecisionTreeClassifier(class_weight=None, criterion="entropy", max_depth=None,             max_features=None, max_leaf_nodes=None,             min_impurity_decrease=0.0, min_impurity_split=None,             min_samples_leaf=1, min_samples_split=2,             min_weight_fraction_leaf=0.0, presort=False, random_state=None,             splitter="best")
  参数代表的含义如下表:
  参数表
  作用
  criterion
  在基于特征划分数据集合时,选择特征的标准。默认是 gini,也可以是entropyo
  splitter
  在构造树时,选择属性特征的原则,可以是best或者 random。默认是best,best代表在所有的特征中选择最 好的,random代表在部分特征中选择最好的。
  max_depth
  决策树的最大深度,我们可以控制决策树的深度来防止 决策树过拟合
  max_features
  在划分数据集时考虑的最多的特征值数量。为int或float类型。其中int值是每次split时最大特征数;float值是百 分数,即特征数=max_features * n_featureso
  min_samples_split
  当节点的样本数少于min_samples_split时,不再继续分 裂。默认值为2
  min_samples_leaf
  叶子节点需要的最少样本数。如果某叶子节点数目小于 这个阈值,则会和兄弟节点一起被剪枝。 min_samples_leaf的取值可以是int或float类型。 int类型:代矗小样本数; float类型:表示一个百分比,这是最小样本数 =min_samples_leaf乘以样本数量,并向上取整。
  max_leaf_nodes
  最大叶子节点数。int类型,默认为None。 默认情况下是不设置最大叶子节点数,特征不多时,不 用设置。特征多时,可以通过设置最大叶子节点数,防 止过拟合。
  min_impurity_decrease
  节点划分最小不纯度。float类型,默认值为0。 节点的不纯度必须大于这个阈值,否则该节点不再生成 子节点。通过设置,可以限制决策树的增长。
  minjmpurity_split
  信息増益的阀值。信息増益必须大于这个阀值,否则不 分裂。
  class_weight
  类别权重。默认为None,也可以是diet或balanced。 diet类型:指定样本各类别的权重,权重大的类别在决策 树构造的时候会进行偏倚。 balanced:算法自己计算权重,样本量少的类别所对应 的样本权重会更高。
  presort
  bool类型,默认是false,表示在拟合前,是否对数据进 行排序来加快树的构建。当数据集较小时,使用 presort=true会加快分类器构造速度。当数据集庞大 时,presort=true会导致整个分类非常缓慢。
  在构造决策树分类器后,我们可以使用fit方法让他分类器进行拟合, 使用 predict  方法对新数据进行预测, 得到预测的分类结果, 也可以使用 score  方法得到分类器的准确率.
  fit  、 predict  和 score  方法的作用如下表:
  方法表
  作用
  fit(features, labels)
  通过特征矩阵, 分类表示,让分类器进行拟合
  predict(features)
  返回预测结果
  score(features, labels)
  返回准确率
  本次数据集一共两个,一个是 train.csv  , 用于训练, 包含特征信息和存活与否的标签, 一个是 test.csv  , 测试数据集, 只包含特征信息.
  训练集中,包括了以下字段:
  字段
  描述
  Passengerld
  乘客编号
  Survived
  是否幸存
  Pclass
  船票等级
  Name
  乘客姓名
  Sex
  乗客性别
  SibSp
  亲戚数虽(兄妹、配偶数)
  Parch
  亲戚数虽(父母、子女数)
  Ticket
  船票号码
  Fare
  船票价格
  Cabin
  船舱
  Embarked
  登陆港口 流程
  整个流程可以划分为三个阶段: 获取数据 准备阶段 数据探索 数据清洗 特征选择
  分类阶段 决策树模型 模型评估&预测 决策树可视化
  获取数据
  这一步还包含了引入所需依赖 # 引入依赖 import pandas as pd from sklearn.feature_extraction import DictVectorizer from sklearn.tree import DecisionTreeClassifier import os  # 准备工作 path = os.path.expanduser("~/data/python/Titanic_Data/")  # 获取数据 train_data = pd.read_csv(path + "train.csv") test_data = pd.read_csv(path + "test.csv")准备阶段
  对数据进行探索,分析数据质量,并对数据进行清洗,然后通过特征选择对数据进行降维, 以便于之后进行分类运算; 数据探索train_data.info() # 了解数据表的基本情况:行数、列数、每列的数据类型、数据完整度 train_data.describe() # 了解数据表的统计情况:总数、平均值、标准差、最小值、最大值等 train_data.describe(include=["O"]) #查看字符串类型 (非数字) 的整体情况 train_head(5) # 查看前几行数据 (默认是前 5 行) train_tail(5) # 查看后几行数据 (默认是最后 5 行) train_sample(5) # 查看随机几行数据 (默认是随机1行) # 运行结果   RangeIndex: 891 entries, 0 to 890 Data columns (total 12 columns): PassengerId    891 non-null int64 Survived       891 non-null int64 Pclass         891 non-null int64 Name           891 non-null object Sex            891 non-null object Age            714 non-null float64 SibSp          891 non-null int64 Parch          891 non-null int64 Ticket         891 non-null object Fare           891 non-null float64 Cabin          204 non-null object Embarked       889 non-null object dtypes: float64(2), int64(5), object(5) memory usage: 83.6+ KB None ------------------------------        PassengerId    Survived     ...           Parch        Fare count   891.000000  891.000000     ...      891.000000  891.000000 mean    446.000000    0.383838     ...        0.381594   32.204208 std     257.353842    0.486592     ...        0.806057   49.693429 min       1.000000    0.000000     ...        0.000000    0.000000 25%     223.500000    0.000000     ...        0.000000    7.910400 50%     446.000000    0.000000     ...        0.000000   14.454200 75%     668.500000    1.000000     ...        0.000000   31.000000 max     891.000000    1.000000     ...        6.000000  512.329200  [8 rows x 7 columns] ------------------------------                                           Name   Sex   ...       Cabin Embarked count                                      891   891   ...         204      889 unique                                     891     2   ...         147        3 top     Peter, Mrs. Catherine (Catherine Rizk)  male   ...     B96 B98        S freq                                         1   577   ...           4      644  [4 rows x 5 columns] ------------------------------    PassengerId  Survived  Pclass    ...        Fare Cabin  Embarked 0            1         0       3    ...      7.2500   NaN         S 1            2         1       1    ...     71.2833   C85         C 2            3         1       3    ...      7.9250   NaN         S 3            4         1       1    ...     53.1000  C123         S 4            5         0       3    ...      8.0500   NaN         S  [5 rows x 12 columns] ------------------------------      PassengerId  Survived  Pclass    ...      Fare Cabin  Embarked 886          887         0       2    ...     13.00   NaN         S 887          888         1       1    ...     30.00   B42         S 888          889         0       3    ...     23.45   NaN         S 889          890         1       1    ...     30.00  C148         C 890          891         0       3    ...      7.75   NaN         Q  [5 rows x 12 columns] ------------------------------          PassengerId    Survived    Pclass            ...                 Fare    Cabin     Embarked 619                    620                 0             2             ...         10.5000        NaN                     S 330                    331                 1             3             ...         23.2500        NaN                     Q 647                    648                 1             1             ...         35.5000        A26                     C 716                    717                 1             1             ...         227.5250    C45                     C 860                    861                 0             3             ...         14.1083        NaN                     S  [5 rows x 12 columns]数据清洗
  探索之后, 我们发现Age、Cabin这两个字段的数据有缺失.
  其中, Cabin为船舱, 有大量的缺失值, 在训练集和测试集中的缺失率分别为77%和78%, 无法补齐, Age可以获取平均值进行补齐, 而Embarked是登陆港口, 这个字段也有少量(2个)缺失值, 可以使用最大数据进行补齐. train_data["Age"].fillna(train_data["Age"].mean(), inplace=True) test_data["Age"].fillna(test_data["Age"].mean(), inplace=True)  train_data["Embarked"].fillna(train_data["Embarked"].value_counts().idxmax(), inplace=True) test_data["Embarked"].fillna(test_data["Embarked"].value_counts().idxmax(), inplace=True)分类阶段特征选择
  需要选择有用的字段作为特征,这一步其实很重要: # 特征选择 train_data.columns  # 从上一句的结果中选择特征字段 features = ["Pclass", "Sex", "Age", "SibSp", "Fare", "Parch", "Embarked"] train_features = train_data[features] test_features = test_data[features]  train_labels = train_data["Survived"]
  这中间有一些事字符串字段, 是不适合进行后续运算的, 需要在这里转变为数值类型,比如Sex字段, 男女两种取值需要转变成0和1
  再比如Embarked有S, C, Q三种可能, 我们可以改成Embarked=S, Embarked=C, Embarked=Q三个字段,然后用数值0和1来表示, 其中sklearn特征选择中的DictVectorizer类( 上面已引入依赖 ), 可以处理符号化的对象, 将符号转变为0/1进行表示: dvec=DictVectorizer(sparse=False) train_features=dvec.fit_transform(train_features.to_dict(orient="record"))
  fit_transform  这个函数可以讲特征向量转化为特征值矩阵, 我们查看下: dvec.feature_names_ # 运行结果:  ["Age", "Embarked=C", "Embarked=Q", "Embarked=S", "Fare", "Parch", "Pclass", "Sex=female", "Sex=male", "SibSp"]
  我们讲Embarked转化为三列 ( ["Embarked=C", "Embarked=Q", "Embarked=S"]  ), Sex变为了两列 ( [Sex=female", "Sex=male"]  ) 决策树模型# 构造ID3决策树 clf=DecisionTreeClassifier(criterion="entropy") # 决策树训练 clf.fit(train_features, train_labels)模型预测 & 评估
  我们首先得到测试集的特征值矩阵, 然后使用训练好的决策树clf进行预测, 得到预测结果: test_features=dvec.transform(test_features.to_dict(orient="record")) # 决策树预测 pred_labels=clf.predict(test_features)
  模型评估中,决策树提供了score函数直接得到准确率,但是我们并不知道真实的预测结果,所以无法用预测值和真实的预测结果做比较, 需要使用训练机中的数据进行模型评估, 可以使用决策树自带的score函数计算: # 得到决策树准确率 acc_decision_tree=round(clf.score(train_features, train_labels), 6) acc_decision_tree # 运行结果 0.982043
  其实,以上准确率评估并不准确,因为我们用训练集做了训练,再用训练集做准确率评估, 并不能代表决策树分类器的准确率.
  要统计决策树分类器的准确率, 可以使用K折交叉验证,
  cross_val_score   函数中的参数 cv 代表对原始数据划分成多少份,也就是我们的 K 值,一般建议 K 值取 10,因此我们可以设置  CV=10  import numpy as np from sklearn.model_selection import cross_val_score # 使用K折交叉验证, 统计决策树准确率 np.mean(cross_val_score(clf, train_features, train_labels, cv=10)) # 输出结果 0.7778901373283394

一体化畜禽养殖,温氏股份主业稳步扩张,充分受益行业高景气度(报告出品方分析师西部证券熊航)一温氏股份农业产业化国家重点龙头企业1。1四十年发展,造就一体化畜禽养殖龙头温氏集团前身为1983年创建的新兴县勒竹鸡场,以肉猪肉鸡养殖为主,以奶牛斧子扔向天空世界上最悲哀的事莫过于你掏心掏肺真心对待的朋友没成想最终她在背后捅了你一刀心寒的透透的人心抵不过人心呐相处几年的人还能在背后把你描述的如此不堪的人社会很单纯复杂的是人心。一个人问禅今天是我抄书的第三十八天,收益达到14。11每一种花的花期不同,但总会开花,所以静待花开。人也是这样。每个人成长的速度有所不同,但总会长大,所以不要急,慢慢来吧,慢慢长大。随着时间的流逝,很多事情最后都会迎刃而解。时间像沙漏痛饮了六杯友情真得像美酒一样芬芳浓烈吗?如果让我来回答,我可以毫不犹豫地说是的,友情使人陶醉。人生最美妙的体验,就是和真正的朋友一起举杯。于是我喝了六杯,一杯几乎二两,却没有像以往那样断片。研究发现每天只进行2分钟的短暂的剧烈活动都与长寿有关每次持续两分钟的剧烈活动,每周总共仅15分钟,与死亡风险的降低有关。这是根据10月27日发表在欧洲心脏病学会(ESC)期刊欧洲心脏杂志上的新研究报告。结果表明,在一周内短时间内积累中国人寿支持民营和小微企业投资存量规模超2300亿元小微活,就业稳,经济兴。小微企业不仅是吸纳就业的主力军,更是带动投资促进消费的生力军。助力小微企业不仅关乎市场活力,也关乎民生发展。中国人寿始终坚守服务国家发展大局守护人民美好生活时代要变了?英特尔拿下7家芯片代工业务,或包含台积电5大客户台积电作为全球芯片代工龙头,拥有全球50以上的市场份额,力压三星和英特尔,创造了属于自己的一个时代。但是,2022年以来,台积电传就递出多个危险信号,其状况原本就不是很理想。然而,经常喝黄芪水,为什么会越来越瘦?喝黄芪水有哪些好处?导语黄芪属于一种非常常见的中药材,具有极高的药用价值,所含的营养成分比较丰富,在很多药物的成分中都能看到黄的身影,除此之外,还可以用来制成药膳,能够起到补气养血,调理脾胃的作用。生前列腺肥大,功能障碍,以黄芪,水蛭为君,9味药一月收功很多男性朋友在患有前列腺肥大的同时还患有功能障碍,为什么会一下子查出来两个疾病?中医认为,年老肾虚为发病之本。肾处于下焦,开窍于二阴,与膀胱相为表里,统摄全身水液,主水司二便,为机一个神奇的中成药,祛风除湿,通络止痛,逼出关节骨缝的风寒湿为什么年纪轻轻的,全身关节都不好使了呢?经常出现脖子,肩膀不舒服,扭头伸胳膊都酸痛难忍,有时坐的时间长,腰后侧就开始酸痛发软,严重的腰都直不起来,并且稍微多走几步,膝关节,小腿肚就贫富差距这件事要辩证看现在贫富差距很大,这个但凡不傻的都知道。但这事也未必就是坏事,让大家知道差距,并提供公平的环境,靠个人努力能改变,就没啥大问题。要是让大家看到差距了,却无法通过个人努力来改变确实挺
蓝色起源迈向人类太空飞行领域的步伐,何时能够载人航天?简介由亚马逊CEO杰夫贝索斯创立的蓝色起源公司成功发射了其第14个Shepard飞船,该任务致力于商业太空旅行的实行,该次发射除了配备了更全面的安全系统以外还达到了迄今为止最高时速宇宙还存在除光速以外的一个速度限制,这才是人类真正的障碍?宇宙中有超越光速的物质吗?或许有,但我们没有发现,所以光是目前为止宇宙中的速度天花板。人类无数次幻想,当我们能够达到光速,会开启怎样的星际旅途。可是,光速是这么容易就达到的吗?光的2022年领养老金,医保得补4万?反正医保卡不返钱,不如做转换?奇怪,我明明符合领取养老金的条件,为啥医保还得让我一次性补4万?反正医保卡不返钱,不如做转换,直接转到城乡居民医保吧!一听到要交一大笔费用,临近退休的人员就开始犹豫,上述话语我在社18分大逆转,杜兰特高效输出,小库里复出命中7记三分北京时间3月19日,篮网主场迎战开拓者。本来以为是一场一边倒的比赛,上半场局势却并非如此。首节大家就比较焦灼,比分交替上升,第二节在哈特的带领下,开拓者多点开花,进攻非常的高效,打库里罚球绝杀开拓者杜兰特砍下3866杜兰特本赛季第19次砍下30篮网首发杜兰特德拉蒙德德拉季奇布朗塞斯库里开拓者首发哈特温斯洛尤班克斯沃特福德威廉姆斯前情回顾篮网最近的势头还算不错,不过上场比赛被旧将丁威迪绝杀后排在东部第八的位置。开拓者最近情没钱踢什么球?曾带领天海保级的李玮锋直言自己都没实力让孩子踢日前,因为和范志毅和马明宇两位老前辈畅聊中国足球,牵扯到了冯潇霆巩汉林引起的冯巩之争,前国足功勋后卫,曾带领天津天海成功保级的李玮锋再次走入人们的事业。当时并没有像范志毅那样发表类名记揭秘中超泡沫不是恒大吹起来的这队当年给国脚开1000万税后近日,范志毅在一档节目中怒怼球迷球员工资是老板给的,又不是偷的,拿那么多钱你嫉妒啊的言论,余波仍未消散。国内足球记者贾岩峰在社交平台上也发表了类似观点,同时疑似还在为恒大洗白,称涨猎罪图鉴刚更新结束,双女主探案剧消散的痕迹又要来袭?近日在猎罪图鉴紧张刺激的剧情下,终于迎来了最终的结局,在结尾处留下的悬念更是使众多网友直呼不够看,就当众人为双男主悬疑探案剧猎罪图鉴的结束而不舍时,又迎来了另一部双女主悬疑探案剧拍演员刘敏涛离婚有泪有痛,余生不想再因为钱而低头2020年,刘敏涛在人物演讲里说曾经我想吃抹茶冰淇淋。丈夫听后用冷漠而奇怪的眼神看着自己,那一瞬间,她愣在那里一动不动。没达成这个愿望,因为我身无分文,只能作罢。回到家后,这一幕在她是国家一级演员,为拍戏而打胎导致不孕,如今67岁终于收获幸福文娱圈里边每天都邑产生许多故意思的小段子和小八卦,一路走遍天下每天带你明白不同样的文娱八卦海洋,共享出故意思的文娱圈八卦段子,给朋友们带来少许小充分!本日要说明的这位女演员是国家一尊敬的巩汉林大哥好糊涂呀,你道的是哪门子歉一石激起千层浪,巩汉林晒出自己珍藏的签名足球,细心的人发现足球上的签名全是假的,从而导致大型翻车。那些所谓的足球人士对巩汉林冷嘲热讽,真的是让人大跌眼镜。视频中巩汉林正襟危坐神情庄