Machine learning:Titanic数据分析(一)导
2020-02-28 本文已影响0人
zhk779
一、导览
泰坦尼克之灾数据集
本文译自kaggle上的处理泰坦尼克号数据集的这篇Notebook,适合机器学习的初学者了解特征提取到模型训练的整个过程,主要侧重于基础的特征选择,提供了一些常见的特征提取思路。
1、通常的数据分析步骤
(1)问题的提出和定义
(2)获得训练和测试数据
(3)数据预处理(校正、清洗)
(4)分析、模式定义、探索数据
(5)建模、预测、解决问题
(5)可视化、报告并展示问题解决步骤和最终解决方案
(6)应用、提交预测结果
2、目标
(1)分类: 对样本进行分类并尝试理解不同类样本之间的隐藏关系
(2)关联性分析:了解数据集中的数据和结果有何关系
(3)转化:有些模型可能需要我们将非数值型分类数据转化为数值型数据
(4)完整数据:填充缺失或错误的数据,在无法完善的情况下可能会把数据删除。
(5)创造数据:根据已有数据创造新特征
(6)绘制图表:数据可视化
二、正式开始数据分析
1、import (没啥可说的)
# data analysis and wrangling
import pandas as pd
import numpy as np
import random as rnd
# visualization
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
# machine learning
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC, LinearSVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier
2、读取数据
train_df = pd.read_csv('../input/train.csv')
test_df = pd.read_csv('../input/test.csv')
combine = [train_df, test_df]
看看有哪些字段:
print(train_df.columns.values)
所有特征
train_df.head()
head
train_df.tail()
tail
接下来对各个特征的数值类型进行分类,以备后续进行数据处理:
(1)哪些数据是类别型数据呢?
类别型特征(无先后顺序):Survived, Sex, Embarked
类别型特征(有先后顺序):Pclass
(2)哪些数据是数值类型呢?
数值型数据(连续型):Age, Fare
数值型数据(离散型):SibSp, Parch
(3)哪些数据是混合型数据呢?
Ticket 、Cabin
(4)哪些数据可能包含错误值或者书写错误?
name(由于书写格式不同,可能出现书写错误)
train_df.info()
print('_'*40)
test_df.info()
空值、类型分析
(5)哪些数据有空值?(需要填充数据)
训练数据中:Cabin > Age > Embarked
测试数据中:Cabin > Age > Fare
(6)数据的类型分别是什么?
7个是整型或浮点型(测试集中为6个,缺少了目标值Survived)
5个是字符型