日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

泰坦尼克号数据集_机器学习(入门)--Kaggle项目之泰坦尼克号

發布時間:2023/11/27 生活经验 78 豆豆
生活随笔 收集整理的這篇文章主要介紹了 泰坦尼克号数据集_机器学习(入门)--Kaggle项目之泰坦尼克号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

電影《泰坦尼克號》改編自一個真實故事。1912年4月15日,這艘號稱“永不沉沒”的泰坦尼克號在首航期間,撞上冰山后沉沒,船上的2224名乘客和機組人員,其中只有772人存活下來,生還率只有32%。 這一聳人聽聞的悲劇震撼了國際社會,并導致了更好的船舶安全條例。


一,提出問題

什么人在泰坦尼克號上更容易存活?

二,理解數據

  • 采集數據

數據來源于kaggle網站Titanic項目,如下鏈接可下載數據。

https://www.kaggle.com/c/titanic?www.kaggle.com

  • 導入數據

  • 查看數據集信息

各列名含義如下:

查看數據描述統計信息:

查看數據基本信息:

數據總共有1309行,Survived是標簽,用作機器學習預測,無需處理。數據類型列:年齡(Age)、船票價格(Fare)和船艙號(Cabin)里面有缺失數據:

  • 年齡(Age)里面數據總數是1046條,缺失了263,缺失率20%;
  • 船票價格(Fare)里面數據總數是1308條,缺失了1條數據字符串列;
  • 登船港口(Embarked)里面數據總數是1307,只缺失了2條數據,缺失較少;
  • 船艙號(Cabin)里面數據總數是295,缺失了1014,缺失率77.5%,缺失較大。

三,數據清洗

數據清洗在整個數據分析的過程中占有很多的時間,因此提高數據清洗效率十分關鍵,因此,一定要將數據清洗步驟牢記:

選擇子集->列名重命名->缺失數據處理->數據類型轉換->數據排序->異常值處理

對于此次分析,前兩步不需要可以省略

  • 缺失數據處理

在理解數據的步驟中,我們查看了數據的基本信息,了解了數據在各列的缺失情況,為下面的處理方式提供指導。

很多機器學習算法為了訓練模型,要求所傳入的特征中不能有空值。

常規得填充方式:

  1. 如果是數值類型,用平均值取代
  2. 如果是分類數據,用最常見的類別取代
  3. 使用模型預測缺失值,例如:K-NN

那么對于年齡(Age)船票價格(Fare)這樣的數值類型,用平均值填充

那么對于登船港口(Embarked)這種分類數據,用最常見的類別取代

對于船艙號(Cabin),因為缺失值比較多,這里用'U'替換,表示未知

注意:(Survived)這里一列是我們的標簽,用來做機器學習預測的,不需要處理這一列

  • 特征提取

(1)數據分類

查看數據類型,分為3種數據類型。并對類別數據處理:用數值代替類別,并進行One-hot編碼

1.數值類型:

乘客編號(PassengerId),年齡(Age),船票價格(Fare),同代直系親屬人數(SibSp),不同代直系親屬人數(Parch)

2.時間序列:無

3.分類數據:

1)有直接類別的

乘客性別(Sex):男性male,女性female

登船港口(Embarked):出發地點S=英國南安普頓Southampton,途徑地點1:C=法國 瑟堡市Cherbourg,出發地點2:Q=愛爾蘭 昆士敦Queenstown

客艙等級(Pclass):1=1等艙,2=2等艙,3=3等艙

2)字符串類型:可能從這里面提取出特征來,也歸到分類數據中

乘客姓名(Name)

客艙號(Cabin)

船票編號(Ticket)

(2)分類數據:有直接類別的

  1. 乘客性別(Sex): 男性male,女性female
  2. 登船港口(Embarked):出發地點S=英國南安普頓Southampton,途徑地點1:C=法國 瑟堡市Cherbourg,出發地點2:Q=愛爾蘭 昆士敦Queenstown
  3. 客艙等級(Pclass):1=1等艙,2=2等艙,3=3等艙

乘客性別(Sex)

登船港口(Embarked)

刪除行用到了.drop:df.drop(name,axis=1)

這里的name指定了列,而axis=1則指定了行,表示刪除‘name’列下的每一行

客艙等級(Pclass)

(2)分類數據:字符串類型

字符串類型:可能從這里面提取出特征來,也歸到分類數據中,這里數據有:

  1. 乘客姓名(Name)
  2. 客艙號(Cabin)
  3. 船票編號(Ticket)

從姓名中提取頭銜

查看姓名這一列長啥樣,注意到在乘客名字(Name)中,有一個非常顯著的特點:

乘客頭銜每個名字當中都包含了具體的稱謂或者說是頭銜,將這部分信息提取出來后可以作為非常有用一個新變量,可以幫助我們進行預測。

例如:

Braund, Mr. Owen Harris

Heikkinen, Miss. Laina

Oliva y Ocana, Dona. Fermina

Peter, Master. Michael J

我們看到姓名中'Braund, Mr. Owen Harris',逗號前面的是“名”,逗號后面是‘頭銜. 姓’因此,這個位置我們將其切割,提取頭銜。

定義以下幾種頭銜類別:

Officer政府官員

Royalty王室(皇室)

Mr已婚男士

Mrs已婚婦女

Miss年輕未婚女子

Master有技能的人/教師

接下來就hi是添加one-hot編碼產生的虛擬變量(dummy variables)到泰坦尼克號數據集full,并刪除原有的‘name’列。

從客艙號中提取客艙類別

補充知識:匿名函數

查看以下客艙號類別,客場號的首字母是類別

接下來,就是添加one-hot編碼產生的虛擬變量(dummy variables)到泰坦尼克號數據集full,刪除原客艙號。

建立家庭人數和家庭類別

那么到現在,我們得特征值已經到了33個

  • 特征選擇

根據各個特征與生成情況(Survived)的相關系數大小,我們選擇了這幾個特征作為模型的輸入:

這里選擇頭銜(前面所在的數據集titleDf)、客艙等級(pclassDf)、家庭大小(familyDf)、船票價格(Fare)、船艙號(cabinDf)、登船港口(embarkedDf)、性別(Sex)

四,構建模型

  • 建立訓練數據集和測試數據集

從原始數據集(source)中拆分出訓練數據集(用于模型訓練train),測試數據集(用于模型評估test)

  • 選擇機器學習算法

  • 訓練模型

五,評估模型

六,方案實施

總結

以上是生活随笔為你收集整理的泰坦尼克号数据集_机器学习(入门)--Kaggle项目之泰坦尼克号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。