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

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

Python数据分析学习笔记,今天分享下利用Python进行逻辑回归,预测泰坦尼克号乘客生存情况。





#导入2个Python常用数据分析的库
import numpy as np
import pandas as pd


#将数据源文件读取
#注意Windows环境下,需要用r转义一下,不然读取不进来
train = pd.read_csv(r"C:\\Users\\Administrator\\Desktop\\train.csv")
test = pd.read_csv(r"C:\\Users\\Administrator\\Desktop\\test.csv")
print('训练数据集:',train.shape,'测试数据集:',test.shape)

结果:表示训练数据集为891行,12列;测试数据集为418行,11列,测试集少了一列Survived即我们后续需要通过逻辑回归进行预测的。



#初步观察数据情况
#Pclass客舱等级
#SibSp同代直系亲属数
#Parch不同代直系亲属数
#Cabin客舱号
#Embarked登船港口
#Fare船票价格
full.head()

结果:用head函数可以默认查看前5行数据,便于我们初步掌握数据概况。



#描述性数据统计
full.describe()

结果:用describe函数可以进行描述性数据统计,即我们常见的均值、标准差、中位数等。



#查看每一列数据类型和数据总数
#Survived、Age、Fare、Cabin、Embarked有缺失
full.info()

结果:用info函数可以查看各列的数据个数,便于我们快速定位那些列有缺失值。



#数据预处理,缺失值填充
#数值型数据用均值或中位数填充,如Age
#应用fillna函数,用于填充缺失值
full['Age'] = full['Age'].fillna(full['Age'].mean())
full['Fare'] = full['Fare'].fillna(full['Fare'].mean())


#分类型数据用最常见类别进行填充
#先通过value_counts函数,查询一下该列出现的各类型总数
full['Embarked'].value_counts()


#看到量最多的是S,因此用它来填充确实项
full['Embarked'] = full['Embarked'].fillna('S')


#因Cabin缺失较多,用新的‘U’来表示(Unknow)
full['Cabin'] = full['Cabin'].fillna('U')


#再次观察一下数据,发现除Survived之外,都已经填充完成
full.info()




#Sex为字符型字段,需要转换为数值型数据便于处理
sex_mapDict = {'male':1,'female':0}    #建立一个字典
full['Sex'] = full['Sex'].map(sex_mapDict)    #运用maple函数对Sex这一列进行重新编码
full.head()




#使用数据框的get-dummies( )对登船港口进行one-hot编码
embarkeddf = pd.DataFrame()    #存放提取后的特征
embarkeddf = pd.get_dummies(full['Embarked'],prefix='Embarked')    #使用get_dummies进行one-hot编码,列名前缀是Embarked
embarkeddf.head(10)


结果:get_dummies函数的作用是将该列出现值的类型再重新划分为子列,通过子列里的布尔类型标识它的类型。



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

结果:通过concat函数将新增的列加到原数据表中。



full.drop('Embarked',axis=1,inplace=True)    #将原Embarked列删除
full.head()




#对客舱等级Pclass进行同样的one-hot编码处理
pclassdf = pd.DataFrame()    #存放提取后的特征
pclassdf = pd.get_dummies(full['Pclass'],prefix='Pclass')    #使用get_dummies进行one-hot编码,列名前缀是Pclass
full = pd.concat([full,pclassdf],axis=1)    #添加one-hot编码产生的虚拟变量(dummy variable)到full中
full.drop('Pclass',axis=1,inplace=True)    #将原Pclass列删除
full.head()




#对姓名和头衔做编码处理
#定义一个函数,从姓名中提取头衔
def gettitle(name):
    str1=name.split(',')[1]
    str2=str1.split('.')[0]
    str3=str2.strip()    #strip用于移除字符串头尾指定字符(默认为空格)
    return str3
titleDf=pd.DataFrame()    #存放提取后的特征
titleDf['title']=full['Name'].map(gettitle)
titleDf.head()

结果:



titleDf['title'].value_counts()    #查询头衔的类别和数量

结果:



#有些头衔并不是常见头衔,而且出现频率比较低
#这样不利于机器学习,可将头衔分为6类Officer,Royalty,Mrs,Miss,Mr,Master六种
title_mapDict={
    "Capt":"Officer",
    "Col":"Officer",
    "Major":"Officer",
    "Dr":"Officer",
    "Rev":"Officer",
    "Jonkheer":"Royalty",
    "Don":"Royalty",
    "Sir":"Royalty",
    "the Countess":"Royalty",
    "Dona":"Royalty",
    "Mme":"Mrs",
    "Mlle":"Miss",
    "Ms":"Mrs",
    "Mrs":"Mrs",
    "Mr":"Mr",
    "Miss":"Miss",
    "Master":"Master",
    "Lady":"Royalty"
}
titleDf['title']=titleDf['title'].map(title_mapDict)
titleDf['title'].value_counts()

结果:


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


目录
相关文章
|
4天前
|
数据可视化 数据挖掘 知识图谱
精选:15款顶尖Python知识图谱(关系网络)绘制工具,数据分析的强力助手
这里有15款免费工具推荐:NetworkX(Python基础),Graph-tool(C++速度),Graphviz(可视化库),ipycytoscape(Jupyter集成),ipydagred3,ipySigma(NetworkX + Web),Netwulf(交互式),nxviz(Matplotlib绑定),Py3plex(复杂网络分析),Py4cytoscape(Python+Cytoscape),pydot(Graphviz接口),PyGraphistry(GPU加速),python-igraph,pyvis(交互式图形),SNAP(大规模网络分析)。绘制和理解网络图从未如此简单!
13 0
|
4天前
|
机器学习/深度学习 自然语言处理 数据挖掘
使用Python和大模型进行数据分析和文本生成
Python语言以其简洁和强大的特性,成为了数据科学、机器学习和人工智能开发的首选语言之一。随着大模型(Large Language Models, LLMs)如GPT-4的崛起,我们能够利用这些模型实现诸多复杂任务,从文本生成到智能对话、数据分析等等。在这篇文章中,我将介绍如何用Python连接和使用大模型,并通过示例展示如何在实际项目中应用这些技术。
|
7天前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
9天前
|
机器学习/深度学习 数据采集 数据可视化
使用Python进行数据分析涉及数据收集
【6月更文挑战第21天】使用Python进行数据分析涉及数据收集(如数据库、文件、API),数据清洗(处理缺失值、异常值和重复项),数据探索(统计摘要、可视化和相关性分析),特征工程(创建新特征和编码),模型构建(选择算法、训练与调整),模型评估(计算指标、可视化效果),结果解释(报告和可视化),以及部署与维护。此过程因项目需求而异,可能需迭代。常用库有`pandas`、`requests`、`BeautifulSoup`、`Matplotlib`等。
16 1
|
2天前
|
数据挖掘 Python
python数据分析常用图大集合
python数据分析常用图大集合
|
10天前
|
数据采集 数据可视化 数据挖掘
Python数据分析入门指南
Python数据分析涉及环境搭建(推荐Anaconda,含pandas和matplotlib库)。使用`pandas`读取CSV数据,如`data = pd.read_csv('data.csv')`。数据清洗包括检查缺失值(`data.isnull().sum()`)和处理异常值。然后进行数据处理,如创建新列、选择特定列及分组。利用`matplotlib`进行数据可视化,绘制直方图和散点图,以`plt.hist()`和`plt.scatter()`展示数据。
|
12天前
|
机器学习/深度学习 人工智能 算法框架/工具
Python赋能AI数据分析
Python赋能AI数据分析
27 0
|
1月前
|
存储 数据可视化 数据挖掘
Python在数据分析中的利器:Pandas库全面解析
【2月更文挑战第7天】 众所周知,Python作为一种简洁、易学且功能强大的编程语言,被广泛运用于数据科学和人工智能领域。而Pandas库作为Python中最受欢迎的数据处理库之一,在数据分析中扮演着举足轻重的角色。本文将全面解析Pandas库的基本功能、高级应用以及实际案例,带您深入了解这个在数据分析领域的利器。
117 1
|
1月前
|
数据采集 SQL 数据挖掘
Python 的科学计算和数据分析: 什么是 NumPy 和 Pandas?它们各自的作用是什么?
Python 的科学计算和数据分析: 什么是 NumPy 和 Pandas?它们各自的作用是什么?
|
1月前
|
SQL 数据挖掘 数据处理
Python数据分析(二)—— Pandas快速入门
Python数据分析(二)—— Pandas快速入门

热门文章

最新文章