در قسمت قبل تا سر بررسی وضعیت داده های پیوسته پیش رفتیم و دیدیم که داده ها نرمال نبودند. در این قسمت کار را با نرمال سازی داده ها شروع میکنیم:
نرمال سازی داده:
کد زیر اسکیل داده ها را تغییر میدهد:
## We will be using logarithmic transformation
for feature in continuous_feature:
data=dataset.copy()
if 0 in data[feature].unique():
pass
else:
data[feature]=np.log(data[feature])
data['SalePrice']=np.log(data['SalePrice'])
plt.scatter(data[feature],data['SalePrice'])
plt.xlabel(feature)
plt.ylabel('SalesPrice')
plt.title(feature)
plt.show()
نکته : به دلیل اینکه لگاریتم در صفر تعریف نشده است، مقادیر صفر را pass میکنیم.
outliers
با دستور boxplot متوجه میشویم که پراکندگی داده به چه صورت است و مقادیر outlier در کدام فیچر تعداد بیشتری دارند:
for feature in continuous_feature:
data=dataset.copy()
if 0 in data[feature].unique(): #why
pass
else:
data[feature]=np.log(data[feature])
data.boxplot(column=feature)
plt.ylabel(feature)
plt.title(feature)
plt.show()
متغیرهای categorical
به سادگی متغیرهایی که عددی نباشند را در دسته categorical قرار میدهیم:
categorical_features=[feature for feature in dataset.columns if data[feature].dtypes=='O']
categorical_features
رابطه بین متغیرcategorical و قیمت:
با دستور زیر رابطه بین متغیرهای categorical وقیمت را بدست می آوریمک
for feature in categorical_features:
data=dataset.copy()
data.groupby(feature)['SalePrice'].median().plot.bar()
plt.xlabel(feature)
plt.ylabel('SalePrice')
plt.title(feature)
plt.show()
قسمت سوم – feature engineerig