機械学習] [タイタニック--2-データマイニング

連続変数は、状況に影響を救出しました。

  • 年齢>結果の特性の連続値の影響
print('Oldest Passenger was of:',data['Age'].max(),'Years')
print('Youngest Passenger was of:',data['Age'].min(),'Years')
print('Average Age on the ship:',data['Age'].mean(),'Years')

80.0歳:最古の旅客があった
0.42年:最年少旅客があった
船の上の平均年齢:29.69911764705882年

f,ax=plt.subplots(1,2,figsize=(16,5))
sns.violinplot("Pclass","Age", hue="Survived", data=data,split=True,ax=ax[0])
ax[0].set_title('Pclass and Age vs Survived')
ax[0].set_yticks(range(0,110,10))
sns.violinplot("Sex","Age", hue="Survived", data=data,split=True,ax=ax[1])
ax[1].set_title('Sex and Age vs Survived')
ax[1].set_yticks(range(0,110,10))
plt.show()

ここに画像を挿入説明

結果:
1)passenegersの数が10の増加歳未満の子供の生存率。

2)高い生存確率は20〜50歳の一部を救出しました。

3)男性の場合、年齢とともに、生存率を減少させました。

欠損値を記入

  • ミーン
  • 経験
  • 予測する回帰モデル
  • ウィードアウト

我々は以前と年齢を見てきたように177空の値があります。これらの欠損値を置き換えるために、我々はそれらにデータセットの平均年齢を割り当てることができます。

しかし、問題は、異なる年齢の多くの人々があるということです。最良の方法は、適切な年齢を見つけることです!

私たちは、機能の名前を確認することができます。この特徴によれば、我々は夫妻それぞれのグループの平均値に割り当てることができるようにすることを、氏や夫人ような名前のような名前があることがわかります。

for i in data:
    data['Initial']=data.Name.str.extract('([A-Za-z]+)\.') 
data

ここに画像を挿入説明

pd.crosstab(data.Initial,data.Sex).T.style.background_gradient(cmap='summer_r')

ここに画像を挿入説明

data['Initial'].replace(['Mlle','Mme','Ms','Dr','Major','Lady','Countess','Jonkheer','Col','Rev','Capt','Sir','Don'],['Miss','Miss','Miss','Mr','Mr','Mrs','Mrs','Other','Other','Other','Mr','Mr','Mr'],inplace=True)
ata.groupby('Initial')['Age'].mean()
Initial
Master     4.574167
Miss      21.860000
Mr        32.739609
Mrs       35.981818
Other     45.888889
Name: Age, dtype: float64
## 使用每组的均值来进行填充
data.loc[(data.Age.isnull())&(data.Initial=='Mr'),'Age']=33
data.loc[(data.Age.isnull())&(data.Initial=='Mrs'),'Age']=36
data.loc[(data.Age.isnull())&(data.Initial=='Master'),'Age']=5
data.loc[(data.Age.isnull())&(data.Initial=='Miss'),'Age']=22
data.loc[(data.Age.isnull())&(data.Initial=='Other'),'Age']=46
data.Age.isnull().any()

False
f,ax=plt.subplots(1,2,figsize=(20,10))
data[data['Survived']==0].Age.plot.hist(ax=ax[0],bins=20,edgecolor='black',color='cyan')
ax[0].set_title('Survived= 0')
x1=list(range(0,85,5))
ax[0].set_xticks(x1)
data[data['Survived']==1].Age.plot.hist(ax=ax[1],color='hotpink',bins=20,edgecolor='black')
ax[1].set_title('Survived= 1')
x2=list(range(0,85,5))
ax[1].set_xticks(x2)
plt.show()

ここに画像を挿入説明
ウォッチ:

1))(歳5歳の子供はまだ多く(女性や子供最初のポリシーを)見つける救出します。

2)最も古い乗客は)80年(保存されました。

3)死亡者は年齢層30-40で最高です。

sns.factorplot('Pclass','Survived',col='Initial',data=data)
plt.show()

ここに画像を挿入説明

  • Embarked->乗車場所
pd.crosstab([data.Embarked,data.Pclass],[data.Sex,data.Survived],margins=True).style.background_gradient(cmap='summer_r')

ここに画像を挿入説明

sns.factorplot('Embarked','Survived',data=data)
fig=plt.gcf()
fig.set_size_inches(5,3)
plt.show()

ここに画像を挿入説明
生存ポートCの最高の可能性は、Sの最も低い生存率は約0.55であり、そして

f,ax=plt.subplots(2,2,figsize=(20,15))
sns.countplot('Embarked',data=data,ax=ax[0,0])
ax[0,0].set_title('No. Of Passengers Boarded')
sns.countplot('Embarked',hue='Sex',data=data,ax=ax[0,1])
ax[0,1].set_title('Male-Female Split for Embarked')
sns.countplot('Embarked',hue='Survived',data=data,ax=ax[1,0])
ax[1,0].set_title('Embarked vs Survived')
sns.countplot('Embarked',hue='Pclass',data=data,ax=ax[1,1])
ax[1,1].set_title('Embarked vs Pclass')
plt.subplots_adjust(wspace=0.2,hspace=0.5)
plt.show()

ここに画像を挿入説明
ここに画像を挿入説明
ウォッチ:

1)キャビンレベルでのほとんどの人は3です。

2)Cは非常に幸運乗客を調べ、それらのいくつかは生き残りました。

3)豊富な検索多くのポートS。生存の可能性は依然として非常に低いです。

4)Q港は、乗客のほぼ95%が貧困層です。

sns.factorplot('Pclass','Survived',hue='Sex',col='Embarked',data=data)
plt.show()

ここに画像を挿入説明

ウォッチ:

1)生存の確率はでpclass1とpclass2ほぼ1女性です。

乗客2)男性と女性の生存率のpclass3は非常に低いです。

3乗客のキャビンと他のがあるので3)ポートQは残念です。

ここでは、ポートの値が欠落内に存在し、また私は、いっぱいにモードを使用しているため、基板Sああ上のほとんどの人

data['Embarked'].fillna('S',inplace=True)
data.Embarked.isnull().any()

False
  • 「数量兄弟 - sibsip

この機能は、人は単独で、または彼の家族と一緒で表しています。

pd.crosstab([data.SibSp],data.Survived).style.background_gradient(cmap='summer_r')

ここに画像を挿入説明

f,ax=plt.subplots(1,2,figsize=(20,8))
sns.barplot('SibSp','Survived',data=data,ax=ax[0])
ax[0].set_title('SibSp vs Survived')
sns.factorplot('SibSp','Survived',data=data,ax=ax[1])
ax[1].set_title('SibSp vs Survived')
plt.close(2)
plt.show()

ここに画像を挿入説明

pd.crosstab(data.SibSp,data.Pclass).style.background_gradient(cmap='summer_r')

ここに画像を挿入説明

ウォッチ:

乗客はボード孤独な兄弟姉妹ではない場合、彼は34.5%の生存率を持っていたことbarplotとfactorplot。兄弟姉妹の数が増加した場合、図形は、実質的に低減されます。これは理にかなっています。私はボートに家族を持っている場合は、他の言葉で、私はそれらを保存するのではなく、自分自身を保存しようとするでしょう。しかし、驚くべきことに、5-8人家族の生存率は0%でした。その理由は、かもしれPCLASS = 3で、彼らはキャビンこと?

  • 「数量両親と子供たち - 乾上がります
pd.crosstab(data.Parch,data.Pclass).style.background_gradient(cmap='summer_r')

ここに画像を挿入説明

f,ax=plt.subplots(1,2,figsize=(20,8))
sns.barplot('Parch','Survived',data=data,ax=ax[0])
ax[0].set_title('Parch vs Survived')
sns.factorplot('Parch','Survived',data=data,ax=ax[1])
ax[1].set_title('Parch vs Survived')
plt.close(2)
plt.show()

ここに画像を挿入説明

ウォッチ:

ここに提示した結果も非常に似ています。両親と乗客が生存の大きなチャンスを持っています。しかし、それは数が増加に伴って減少します。

ホーム両親でボード上の人々の数は生存の1-3チャンスが良いです。船は4人の両親、生存減少の可能性を持っているときだけでは致命的な証明しました。

  • Fare->チケットの値段
f,ax=plt.subplots(1,3,figsize=(20,8))
sns.distplot(data[data['Pclass']==1].Fare,ax=ax[0])
ax[0].set_title('Fares in Pclass 1')
sns.distplot(data[data['Pclass']==2].Fare,ax=ax[1])
ax[1].set_title('Fares in Pclass 2')
sns.distplot(data[data['Pclass']==3].Fare,ax=ax[2])
ax[2].set_title('Fares in Pclass 3')
plt.show()

ここに画像を挿入説明

:すべてを見てみると、要約ます
性別:生存の男性、女性の高確率と比較すると。

PCLASS:あなたは明確な傾向の生存のよりよいチャンスを与えるためにはい、ファーストクラスの乗客。pclass3非常に低い生存率のために。女性のための、ほとんどはいpclass1からの生存のチャンス。

年齢:年齢の5〜10年には、高い生存率よりも低いです。年齢の15〜35歳までの乗客は多くのことを死にました。

ポート:位置まで違いがある、死亡率も素晴らしいです!

家族:兄弟姉妹1-2、1-3の表示ではなく単独のよりも配偶者や親や大家族旅行を持っているがありますが、あなたは生存のより大きな確率を持っています。

  • 前記の間の相関関係

図熱相関します

最初に注意するだけで、数値の特性を比較することです

正の相関:Bの増加に特徴を増加させること結果場合、それらは、正に相関していました。1の値は、完全な正の相関を示しています。

負の相関:特性Bの減少であればA特性増加の結果、負の相関。-1の値は、完全な負の相関を示しています。

sns.heatmap(data.corr(),annot=True,cmap='rainbow',linewidths=0.2) #data.corr()-->correlation matrix
fig=plt.gcf()
fig.set_size_inches(10,8)
plt.show()

ここに画像を挿入説明

今度は、二つの特性が非常にまたは完全に相関しているとしましょう、そう別の増加に増加リード。二つの特徴がほとんど、あるいは全く変化と同様の高さ情報、および情報が含まれていることをこの意味。私たちのためにこのような機能はありません価値があります!

だから、私たちは同時に、それらを使用すべきだと思いますか?または生産モデルで訓練、我々はそれがトレーニング時間と多くの利点が減少するため、冗長性を減らすために試してみてください。

さて、上記のチャートから、我々は特性が有意に相関していないことがわかります。

公開された116元の記事 ウォン称賛10 ビュー1335

おすすめ

転載: blog.csdn.net/weixin_44727383/article/details/105052927