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...