Outliner 觀念問題
# 將 GrLivArea 限制在 800 到 2500 以內, 捨棄離群值
keep_indexs = (df['GrLivArea']> 800) & (df['GrLivArea']< 2500)
df = df[keep_indexs]
train_Y = train_Y[keep_indexs]
sns.regplot(x = df['GrLivArea'], y=train_Y)
plt.show()
# 做線性迴歸, 觀察分數
train_X = MMEncoder.fit_transform(df)
estimator = LinearRegression()
cross_val_score(estimator, train_X, train_Y, cv=5).mean()
以上這段script,其中 len(keep_indexs) = 1344
1.)我的理解是將DataFrame 中的1344筆資料,df['GrLivArea'] 當成 x 軸,train_Y 當成 y軸做線性迴歸並座圖
2.) 將DataFrame(此時為[1344 rows x 36 columns]) 做normalize,LinearRegression() 做為kernal , 以36 個attribute + 1個常數項為 做為對train_Y迴歸的對項,去計算cross_val_score
3.) 不知道以上的理解是否有誤,如果無誤了話,對'GrLivArea'來說是outliner 的資料點不見得對 'MSSubClass', 'LotFrontage'…來說也是outliner , 如果我把'MSSubClass'等等36個 attribute 的outilner 的點都拿掉,資料點會不會變太少,實務中這種做法會不會太浪費資料點(資料取得不易)
回答列表
-
2019/09/07 下午 09:19張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
對,你的理解是對的。所以當資料欄位太多的情況視覺化的方式通常很難觀察(超過三維空間)