Task02 零基礎入門資料探勘 資料分析

2021-10-04 08:54:42 字數 3530 閱讀 4804

train_data = pd.read_csv(path+

"used_car_train_20200313.csv"

,sep =

" ")

test_data = pd.read_csv(path+

"used_car_testa_20200313.csv"

,sep =

" ")

display(train_data.shape)

display(test_data.shape)

3,資料總覽
train_data.head())

)#顯示前五行和末尾五行

train_data.info(

)#用於檢視資料所有列的數目和所屬型別

train_data.describe(

)#顯示所有列的總條數,均值,方差,最小、大值,以及1/4,1/2和3/4時的統計資訊

4,判斷資料缺失和異常情況
train_data.isnull().

sum(

)#統計每列的缺失條數

#用柱狀圖顯示缺失列的條目

missing = train_data.isnull().

sum(

)missing = missing[missing>0]

print

(missing)

missing.sort_values(inplace =

true

)missing.plot.bar(

)#刪除缺失值多的列

del train_data[

"seller"

]del train_data[

"offertype"

]

5,了解**值的分布
#看**值

train_data[

"price"

]#總體分布情況,用不同的圖視覺化,最後看那個結果能更清晰地描繪**值的分布情況

import scipy.stats as st

y = train_data[

"price"

]plt.figure(1)

plt.title(

"johnson su"

)sns.distplot(y,kde=

false

,fit=st.johnsonsu)

plt.figure(2)

plt.title(

"normal"

)sns.distplot(y,kde=

false

,fit=st.norm)

plt.figure(3)

plt.title(

"log normal"

)sns.distplot(y,kde=

false

,fit=st.lognorm)

6,特徵分為類別和數字特徵,並對類別特徵檢視unique分布
#分離label即**值

y_train = train_data[

"price"

]#特徵nunique分布

for cat_fea in categorical_features:

print

(cat_fea +

"的特徵分布如下:"

)print

("{}特徵有{}不同的值"

.format

(cat_fea,train_data[cat_fea]

.nunique())

)print

(train_data[cat_fea]

.value_counts(

))

7,數字特徵分析
#相關性分析

price_numeric = train_data[numeric_features]

correlation = price_numeric.corr(

)print

(correlation[

"price"

].sort_values(ascending=

false),

'\n'

)#用熱力圖來觀察每列之間的相關性

f,ax=plt.subplots(figsize=(7

,7))

plt.title(

"correlation of numeric features with price"

,y=1

,size=16)

sns.heatmap(correlation,square=

true

,vmax=

0.8)

8,型別特徵分析
#  2,類別特徵箱型圖視覺化

categorical_features =

['model'

,'brand'

,'bodytype'

,'fueltype'

,'gearbox'

,'notrepaireddamage'

]for c in categorical_features:

train_data[c]

= train_data[c]

.astype(

"category"

)if train_data[c]

.isnull().

any():

train_data[c]

= train_data[c]

.cat.add_categories(

['missing'])

train_data[c]

= train_data[c]

.fillna(

'missing'

)def

boxplot

(x,y,

**kwargs)

: sns.boxplot(x=x,y=y)

x = plt.xticks(rotation=90)

f = pd.melt(train_data,id_vars=

['price'

],value_vars=categorical_features)

g = sns.facetgrid(f, col=

'variable'

,col_wrap=

2,sharex=

false

,sharey=

false

,size=5)

g = g.

map(boxplot,

'value'

,'price'

)

3,eda實則是把握所有資料分布情況,將缺失值嚴重的列刪除,根據熱力圖處理所有資料特徵之間的相關性,觀察**值的分布情況。

零基礎入門語義分割 TASK02資料擴增

opencv資料擴增 albumentations資料擴增 pytorch讀取賽題資料 datawhale 本章對語義分割任務中常見的資料擴增方法進行介紹,並使用opencv和albumentations兩個庫完成具體的資料擴增操作。本章主要內容為資料擴增方法 opencv資料擴增 albument...

零基礎入門資料探勘 task3 特徵工程

關於特徵工程學習材料和直播的總結和理解。可以增強資料表達 新增先驗知識。特徵工程一般常常與eda資料分析結合。資料分析和特徵工程有交集,可互為補充。異常處理 特徵歸一化 標準化 資料分桶 缺失值處理 特徵構造 特徵篩選 嵌入式 embedding 結合過濾式和包裹式,學習器訓練過程中自動進行了特徵選...

零基礎入門資料探勘 Task5 模型融合

先產生一組個體學習器,然後利用某種策略將它們結合起來,加強模型效果。周志華和李航老師的書中都證明隨著個體學習器數目的增大,整合的錯誤率將呈指數級下降,最終趨向於零。因此,模型融合被廣泛應用。簡單來說就是通過對一組的基分類器以某種方式進行組合,以提公升模型整體效能的方法。多模型投票 votingcla...