25. Pandas结合Sklearn实现泰坦尼克存活率预测

Pandas结合Sklearn实现泰坦尼克存活率预测

实例目标:实现泰坦尼克存活预测

处理步骤:
1、输入数据:使用Pandas读取训练数据(历史数据,特点是已经知道了这个人最后有没有活下来)
2、训练模型:使用Sklearn训练模型
3、使用模型:对于一个新的不知道存活的人,预估他存活的概率

步骤1:读取训练数据

import pandas as pd
df_train = pd.read_csv("./datas/titanic/titanic_train.csv")
df_train.head()
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS

其中,Survived==1代表这个人活下来了、==0代表没活下来;其他的都是这个人的信息和当时的仓位、票务情况

# 我们只挑选两列,作为预测需要的特征
feature_cols = ['Pclass', 'Parch']
X = df_train.loc[:, feature_cols]
X.head()
PclassParch
030
110
230
310
430
# 单独提取是否存活的列,作为预测的目标
y = df_train.Survived
y.head()
0    0
1    1
2    1
3    1
4    0
Name: Survived, dtype: int64

步骤2:训练模型

from sklearn.linear_model import LogisticRegression
# 创建模型对象
logreg = LogisticRegression()

# 实现模型训练
logreg.fit(X, y)
//anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.
  FutureWarning)





LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
                   intercept_scaling=1, l1_ratio=None, max_iter=100,
                   multi_class='warn', n_jobs=None, penalty='l2',
                   random_state=None, solver='warn', tol=0.0001, verbose=0,
                   warm_start=False)
logreg.score(X, y)
0.6879910213243546

步骤3:对于未知数据使用模型

机器学习的核心目标,是使用模型预测未知的事物

比如预测股票明天是涨还是跌、一套新的二手房成交价大概多少钱、用户打开APP最可能看那些视频等问题

# 找一个历史数据中不存在的数据
X.drop_duplicates().sort_values(by=["Pclass", "Parch"])
PclassParch
110
5411
2712
43814
920
9821
4322
43723
030
731
832
8633
16734
1335
67836
# 预测这个数据存活的概率
logreg.predict([[2, 4]])
array([1])
logreg.predict_proba([[2, 4]])
array([[0.35053893, 0.64946107]])

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值