Python数据分析 | 泰坦尼克逻辑回归(下)

简介: Python数据分析 | 泰坦尼克逻辑回归

Python数据分析 | 泰坦尼克逻辑回归(上):https://developer.aliyun.com/article/1512112


titleDf = pd.get_dummies(titleDf['title'])    
titleDf.head()

结果:




full = pd.concat([full,titleDf],axis=1)    #添加one-hot编码产生的虚拟变量(dummy variable)到full中
full.head()

结果:



#对船舱号Cabin进行同样的one-hot编码处理
full['Cabin']=full['Cabin'].map(lambda c:c[0])    #取船舱号的首位做标识符
cabindf = pd.DataFrame()    #存放提取后的特征
cabindf = pd.get_dummies(full['Cabin'],prefix='Cabin')    #使用get_dummies进行one-hot编码,列名前缀是Cabin
full = pd.concat([full,cabindf],axis=1)    #添加one-hot编码产生的虚拟变量(dummy variable)到full中
full.drop('Cabin',axis=1,inplace=True)    #将原Cabin列删除
full.head()

结果:



#家庭数据Parch、SibSp:对于家庭数据选择计算家庭人数的方法提取特征
familydf=pd.DataFrame()    #存放提取后的特征
familydf['family_size']=full['SibSp']+full['Parch']+1
familydf['family_single']=familydf['family_size'].map(lambda a:1 if a==1 else 0)
familydf['family_small']=familydf['family_size'].map(lambda a:1 if 2<=a<=4 else 0)
familydf['family_large']=familydf['family_size'].map(lambda a:1 if 5<=a else 0)
full = pd.concat([full,familydf],axis=1)    #添加one-hot编码产生的虚拟变量(dummy variable)到full中
full.head()

结果:



full.info()

结果:




#查看相关性,使用corr生成相关系数矩阵
corrDf = full.corr()
corrDf

结果:



#查看各个特征与生存情况的相关性
corrDf['Survived'].sort_values(ascending=False)

结果:




#特征选择
full_x=pd.concat([titleDf,pclassdf,familydf,full['Fare'],cabindf,embarkeddf,full['Sex']],axis=1)
full_x.head()

结果:



print(full_x.shape)

结果:


#构建模型
#原始数据集有891条数据
sourceRow=891
#原始数据集特征
source_x=full_x.loc[0:sourceRow-1,:]
#原始数据集标签
source_y=full.loc[0:sourceRow-1,'Survived']
#预测数据集特征
pre_x=full_x.loc[sourceRow:,:]    #取sourceRow之后的数据
source_x.head()

结果:



#建立训练数据和测试数据
from sklearn.model_selection import train_test_split
train_x,test_x,train_y,test_y=train_test_split(source_x,source_y,train_size=0.8)
#数据集大小
print('原始数据集特征',source_x.shape,
      '训练数据集特征',train_x.shape,
      '测试数据集特征',test_x.shape)
print('原始数据集标签',source_y.shape,
      '训练数据集标签',train_y.shape,
      '测试数据集标签',test_y.shape)

结果:



#导入机器算法
from sklearn.linear_model import LogisticRegression
model=LogisticRegression()    #创建逻辑回归模型
model.fit(train_x,train_y)    #训练模型
#评估模型,查看正确率
model.score(test_x,test_y)

结果:可以看到这个正确率还是非常高的,可以用来后续的预测。



#通过机器学习模型,对预测数据生存情况进行预测
pre_y=model.predict(pre_x)
#将预测结果转换为整数型
pre_y=pre_y.astype(int)
#乘客ID
passenger_ID=full.loc[sourceRow:,'PassengerId']
#乘客名字
passenger_Name=full.loc[sourceRow:,'Name']
#数据框:乘客ID,预测结果
preDf=pd.DataFrame({'PassengerId':passenger_ID,'Name':passenger_Name,'Survived':pre_y})
preDf.head()

结果:预测结果为乘客编号、乘客姓名与是否生存。



#将文件保存到本地
preDf.to_csv('tintanic_prd.csv',index=False)


参考资料:

https://zhuanlan.zhihu.com/p/108969064

https://zhuanlan.zhihu.com/p/84353059

目录
相关文章
|
5天前
|
机器学习/深度学习 数据采集 数据挖掘
如何用Python进行数据分析?
【6月更文挑战第13天】如何用Python进行数据分析?
101 66
|
17小时前
|
存储 数据挖掘 索引
Python streamlit框架开发数据分析网站并免费部署
使用Python的Streamlit框架,开发了一个在线数据分析工具,替代Excel查看设备温度CSV数据。通过pandas读取数据,matplotlib绘制图表。程序处理CSV,提取所需列,计算最大最小平均值,用户可多选查看特定数据。[GitHub](https://github.com/yigedaigua/MGHB)上有完整代码,应用已部署至Streamlit Cloud。
13 1
|
17小时前
|
数据挖掘 数据库连接 Python
GitHub高赞!Python零基础也能搞定的数据分析与处理
经常会有人让我推荐一些 Python 入门教程。虽然 Python 入内教程到处都有,但是这些教程要么太宽泛(没有讲任何关于数据分析的内容),要么太专业(全是关于科学原理的内容)。然而Excel用户往往处在一个中间位置:他们的确是和数据打交道,但是科学原理对于他们来说可能又太专业了。他们常常有一些现有教程无法满足的特殊需求,举例如下 • 为完成某个任务,我应该用哪个 Python-Excel包? • 我如何将 Power Query 数据库连接迁移到 Python? • Excel中的 AutoFilter和数据透视表在 Python 中对应的是什么?
|
2天前
|
数据采集 数据可视化 数据挖掘
数据挖掘实战:使用Python进行数据分析与可视化
在大数据时代,Python因其强大库支持和易学性成为数据挖掘的首选语言。本文通过一个电商销售数据案例,演示如何使用Python进行数据预处理(如处理缺失值)、分析(如销售额时间趋势)和可视化(如商品类别销售条形图),揭示数据背后的模式。安装`pandas`, `numpy`, `matplotlib`, `seaborn`后,可以按照提供的代码步骤,从读取CSV到数据探索,体验Python在数据分析中的威力。这只是数据科学的入门,更多高级技术等待发掘。【6月更文挑战第14天】
25 11
|
2天前
|
数据采集 机器学习/深度学习 数据可视化
数据挖掘实战:Python在金融数据分析中的应用案例
Python在金融数据分析中扮演关键角色,用于预测市场趋势和风险管理。本文通过案例展示了使用Python库(如pandas、numpy、matplotlib等)进行数据获取、清洗、分析和建立预测模型,例如计算苹果公司(AAPL)股票的简单移动平均线,以展示基本流程。此示例为更复杂的金融建模奠定了基础。【6月更文挑战第13天】
17 3
|
5天前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【6月更文挑战第12天】在数字时代,Python因其强大的数据处理能力和易用性成为数据分析首选工具。结合Pandas(用于高效数据处理)和Matplotlib(用于数据可视化),能助你成为数据分析专家。Python处理数据预处理、分析和可视化,Pandas的DataFrame简化表格数据操作,Matplotlib则提供丰富图表展示数据。掌握这三个库,数据分析之路将更加畅通无阻。
|
6天前
|
JSON 数据挖掘 API
数据分析实战丨基于pygal与requests分析GitHub最受欢迎的Python库
数据分析实战丨基于pygal与requests分析GitHub最受欢迎的Python库
17 2
|
8天前
|
机器学习/深度学习 数据可视化 数据挖掘
python每日可视化分析:从过去到现代数据分析的演进
python每日可视化分析:从过去到现代数据分析的演进
|
15天前
|
Python 数据挖掘 数据可视化
Python数据分析——Pandas与Jupyter Notebook
【6月更文挑战第1天】 本文探讨了如何使用Python的Pandas库和Jupyter Notebook进行数据分析。首先,介绍了安装和设置步骤,然后展示了如何使用Pandas的DataFrame进行数据加载、清洗和基本分析。接着,通过Jupyter Notebook的交互式环境,演示了数据分析和可视化,包括直方图的创建。文章还涉及数据清洗,如处理缺失值,并展示了如何进行高级数据分析,如数据分组和聚合。此外,还提供了将分析结果导出到文件的方法。通过销售数据的完整案例,详细说明了从加载数据到可视化和结果导出的全过程。最后,讨论了进一步的分析和可视化技巧,如销售额趋势、产品销售排名和区域分布,以及
37 2
|
19天前
|
存储 并行计算 数据挖掘
Python中的NumPy库:科学计算与数据分析的基石
Python中的NumPy库:科学计算与数据分析的基石
68 0

热门文章

最新文章