《智能數(shù)據(jù)分析與應(yīng)用》 課件 單元7 綜合數(shù)據(jù)分析案例_第1頁(yè)
《智能數(shù)據(jù)分析與應(yīng)用》 課件 單元7 綜合數(shù)據(jù)分析案例_第2頁(yè)
《智能數(shù)據(jù)分析與應(yīng)用》 課件 單元7 綜合數(shù)據(jù)分析案例_第3頁(yè)
《智能數(shù)據(jù)分析與應(yīng)用》 課件 單元7 綜合數(shù)據(jù)分析案例_第4頁(yè)
《智能數(shù)據(jù)分析與應(yīng)用》 課件 單元7 綜合數(shù)據(jù)分析案例_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

泰坦尼克號(hào)幸存者預(yù)測(cè)7數(shù)據(jù)分析01訓(xùn)練測(cè)試021數(shù)據(jù)分析1數(shù)據(jù)分析

泰坦尼克號(hào)是英國(guó)1912年沉沒(méi)的巨型游輪,也是當(dāng)時(shí)世界上體積最龐大、內(nèi)部設(shè)施最豪華的客運(yùn)輪船,有“永不沉沒(méi)”的美譽(yù)。然而不幸的是,在它的首次航行從英國(guó)南安普敦出發(fā)駛向美國(guó)紐約期間,泰坦尼克號(hào)便遭厄運(yùn)。1912年4月14日23時(shí)40分左右,泰坦尼克號(hào)與一座冰山相撞,最終導(dǎo)致2224名船員及乘客中,1517人喪生,其中僅333具罹難者遺體被尋回。這場(chǎng)悲劇轟動(dòng)了國(guó)際社會(huì)。雖然在這場(chǎng)災(zāi)難中幸存下來(lái)有一些運(yùn)氣在里面,但一些人比其他人更有可能幸存,比如婦女,兒童和上層階級(jí)。

要求通過(guò)對(duì)乘客數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,最終使用分類(lèi)模型來(lái)判斷哪些乘客存活的可能性更大。1

數(shù)據(jù)是在/c/titanic上進(jìn)行下載,是泰坦尼克號(hào)乘客的數(shù)據(jù),分為兩部分:訓(xùn)練集(train.csv)和測(cè)試集(test.csv)。首先對(duì)乘客數(shù)據(jù)進(jìn)行一系列的分析,處理,清洗,最終使用分類(lèi)模型來(lái)判斷哪些乘客可以存活。。數(shù)據(jù)分析1importpandasaspdimportnumpyasnpimportrandomimportseabornassnsimportmatplotlib.pyplotaspltplt.rcParams["font.sans-serif"]=["SimHei"]#plt.rcParams是用來(lái)設(shè)置參數(shù)的,顯示中文plt.rcParams['axes.unicode_minus']=Falsefromsklearn.linear_modelimportLogisticRegressionfromsklearn.metricsimportconfusion_matrix,accuracy_score,precision_score,recall_score,f1_score,roc_auc_score,roc_curve,aucimportwarningswarnings.filterwarnings("ignore")一、導(dǎo)入需要的包:數(shù)據(jù)分析1train_df=pd.read_csv('train.csv')#讀取訓(xùn)練集test_df=pd.read_csv('test.csv')#讀取測(cè)試集combine=[train_df,test_df]#組合數(shù)據(jù),存儲(chǔ)data_df和data_df,用于統(tǒng)一的數(shù)據(jù)清洗和編碼二、導(dǎo)入數(shù)據(jù):三、查看數(shù)據(jù)集信息:train_df.head()test_df.head()數(shù)據(jù)分析1數(shù)據(jù)分析1列名說(shuō)明列名說(shuō)明PassengerId乘客IDParch父母和孩子數(shù)量pclass船艙等級(jí)(1最好,2次之,3最后)Ticket票號(hào)Name姓名Fare船票價(jià)格sex性別Cabin乘客所在船艙的編號(hào)Age年齡Embarked登船港口Sibsp兄弟姐妹或者配偶人數(shù)survival是否存活(0:否1:是)列名及其對(duì)應(yīng)說(shuō)明:數(shù)據(jù)分析1train_df=pd.read_csv('train.csv')#讀取訓(xùn)練集test_df=pd.read_csv('test.csv')#讀取測(cè)試集combine=[train_df,test_df]#組合數(shù)據(jù),存儲(chǔ)data_df和data_df,用于統(tǒng)一的數(shù)據(jù)清洗和編碼四、變量分析和可視化:1)去除其中的無(wú)用特征數(shù)據(jù)分析1tfig=plt.figure(figsize=(8,6))plt.suptitle("Pclass")sns.countplot(x="Pclass",hue="Survived",data=train_df)plt.show()train_df[['Pclass',

'Survived']].groupby(['Pclass'],

as_index=False).mean().sort_values(by='Survived',

ascending=False)

2)按順序?qū)Ω鱾€(gè)特征進(jìn)行分析和處理船艙等級(jí)-Pclass數(shù)據(jù)分析12)按順序?qū)Ω鱾€(gè)特征進(jìn)行分析和處理船艙等級(jí)-Pclass數(shù)據(jù)分析Pclass和survived的關(guān)系1查看處理之后的數(shù)據(jù)查看變量相關(guān)性數(shù)據(jù)分析X_train=train_df.drop(columns=["Survived"],axis=1)Y_train=train_df["Survived"]X_test=test_dfY_test=pd.read_csv("./submission.csv")['Survived']print(X_train.shape,Y_train.shape,X_test.shape,Y_test.shape)print(X_train.columns)#data.corr()給出了任意兩個(gè)變量之間的相關(guān)系數(shù)#heatmap熱地圖sns.heatmap(X_train.corr(),annot=True)1熱力圖數(shù)據(jù)分析2訓(xùn)練測(cè)試2

這里選用了邏輯回歸,logistic回歸是一種廣義線性回歸(generalizedlinearmodel),因此與多重線性回歸分析有很多相同之處。訓(xùn)練:訓(xùn)練測(cè)試X_train=train_df.drop(columns=["Survived"],axis=1)Y_train=train_df["Survived"]X_test=test_dfY_test=pd.read_csv("./submission.csv")['Survived']print(X_train.shape,Y_train.shape,X_test.shape,Y_test.shape)logreg=LogisticRegression()logreg.fit(X_train,Y_train)LogisticRegression(C=1.0,class_weight=None,dual=False,fit_intercept=True,intercept_scaling=1,max_iter=100,multi_class='ovr',n_jobs=1,penalty='l2',random_state=None,solver='liblinear',tol=0.0001,verbose=0,warm_start=False)2測(cè)試:訓(xùn)練測(cè)試y_test_pred=logreg.predict(X_test)print('混淆矩陣:',confusion_matrix(Y_test,y_test_pred))print('準(zhǔn)確率:',accuracy_score(Y_test,y_test_pred))print('精確率:',precision_score(Y_test,y_test_pred))print('召回率:',recall_score(Y_test,y_test_pred))print('F1_score:',f1_score(Y_test,y_test_pred))print('roc_auc為:',roc_auc_score(Y_test,y_test_pred))2運(yùn)行上述程序,輸出結(jié)果如下:訓(xùn)練測(cè)試混淆矩陣:[[24413][13148]]準(zhǔn)確率:0.937799043062201精確率:0.9192546583850931召回率:0.9192546583850931F1_score:0.9192546583850931roc_auc為:0.9343355003987722ThankYOU!

房?jī)r(jià)預(yù)測(cè)7數(shù)據(jù)分析01訓(xùn)練測(cè)試021數(shù)據(jù)分析1數(shù)據(jù)分析

AmesHousing

dataset是美國(guó)愛(ài)荷華州的艾姆斯鎮(zhèn)2006-2010年的房?jī)r(jià)數(shù)據(jù)集,要求對(duì)/c/house-prices-advanced-regression-techniques提供的1460條房?jī)r(jià)數(shù)據(jù),進(jìn)行預(yù)處理,特征工程,然后通過(guò)選取合適參數(shù)建模,最終對(duì)未知房?jī)r(jià)的數(shù)據(jù)進(jìn)行預(yù)測(cè)。1importnumpyasnpimportpandasaspdimportseabornassnsfromscipyimportstatsimportmatplotlib.styleasstyleimportmatplotlib.pyplotaspltimportmatplotlib.gridspecasgridspec%matplotlibinlinefromsklearnimportpreprocessingfromsklearn.linear_modelimportRidgefromsklearn.model_selectionimportcross_val_scorefromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportr2_scoreimportwarningswarnings.filterwarnings("ignore")一、導(dǎo)入需要的包:數(shù)據(jù)分析1data=pd.read_csv('house_price/data.csv',index_col=0)data.shapedata.head()二、導(dǎo)入數(shù)據(jù):數(shù)據(jù)分析1三、變量分析:由于房?jī)r(jià)預(yù)測(cè)使用的是回歸算法,因此需要滿足多元線性回歸模型的基本假設(shè),具體包括:(1)因變量與自變量之間存在線性相關(guān)關(guān)系;(2)隨機(jī)誤差項(xiàng)具有零均值和同方差;(3)隨機(jī)誤差項(xiàng)在不同樣本點(diǎn)之間是相互獨(dú)立的;(4)隨機(jī)誤差項(xiàng)應(yīng)服從正態(tài)分布;(5)自變量之間不存在嚴(yán)格線性相關(guān)性,如果存在相關(guān)性稱(chēng)為多重共線性數(shù)據(jù)分析1sns.distplot(data['SalePrice'])#直方圖橫軸表示數(shù)值范圍,縱軸表示實(shí)例數(shù)量res=bplot(data['SalePrice'],plot=plt)#通過(guò)QQ圖可以看出不是正態(tài)分布plt.show()

SalePrice:通過(guò)直方圖和QQ圖來(lái)查看是否服從正態(tài)分布數(shù)據(jù)分析1使用log1p函數(shù)對(duì)SalePrice進(jìn)行平滑處理,查看其分布變化:數(shù)據(jù)分析prices=pd.DataFrame({"price":data["SalePrice"],"log(price+1)":np.log1p(data["SalePrice"])})prices.hist()1分析線性相關(guān),可以采用熱力圖:數(shù)據(jù)分析plt.subplots(figsize=(30,20))mask=np.zeros_like(data.corr(),dtype=np.bool)mask[np.triu_indices_from(mask)]=Truesns.heatmap(data.corr(),cmap=sns.diverging_palette(20,220,n=200),mask=mask,annot=True,center=0,);plt.title("HeatmapofalltheFeatures",fontsize=30);1熱力圖數(shù)據(jù)分析1畫(huà)出相關(guān)系數(shù)最大的特征與SalePrice的熱力圖:數(shù)據(jù)分析plt.subplots(figsize=(10,10))corrmat=data.corr()k=10#關(guān)系矩陣中將顯示10個(gè)特征cols=corrmat.nlargest(k,'SalePrice')['SalePrice'].indexcm=np.corrcoef(data[cols].values.T)sns.set(font_scale=1.25)hm=sns.heatmap(cm,cbar=True,annot=True,\square=True,fmt='.2f',annot_kws={'size':10},yticklabels=cols.values,xticklabels=cols.values)plt.show()1熱力圖數(shù)據(jù)分析1forfeaturein['PoolQC','MiscFeature','Alley','Fence','FireplaceQu','MasVnrType']:data[feature]=data[feature].fillna('None')data['MasVnrArea']=data['MasVnrArea'].fillna(0)四、缺失值處理:根據(jù)特征含義對(duì)缺失值進(jìn)行填充,首先對(duì)根據(jù)特征含義進(jìn)行填充,Alley(巷子類(lèi)型)、MasVnrType(砌體飾面類(lèi)型)、FireplaceQu(壁爐質(zhì)量)、PoolQC(游泳池質(zhì)量)、Fence(柵欄)、MiscFeature(其他功能)填充N(xiāo)one,MasVnrArea(砌體飾面面積)填充0數(shù)據(jù)分析1y=np.log1p(data["SalePrice"]).values#對(duì)SalePrice進(jìn)行平滑data.drop(columns=['SalePrice'],axis=1,inplace=True)#對(duì)離散特征進(jìn)行編碼all_dummy_df=pd.get_dummies(data)#數(shù)據(jù)標(biāo)準(zhǔn)化x_scaled=preprocessing.StandardScaler().fit_transform(all_dummy_df)y_scaled=preprocessing.StandardScaler().fit_transform(y.reshape(-1,1))劃分?jǐn)?shù)據(jù)集:X

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論