# کتابخانه های مورد نیاز برای پیش پردازش را وارد کنید
واردات پانداها به عنوان p.d.
از آنجایی که یاد بگیرید.خط لوله واردات خط لوله
از آنجایی که یاد بگیرید.نسبت دادن واردات SimpleImpute
از آنجایی که یاد بگیرید.پیش درمان واردات رمزگذار ترتیبی، رمزگذار OneHot، FunctionTransformer
از آنجایی که یاد بگیرید.سرودن واردات ترانسفورماتور ستونی
# بارگذاری مجموعه داده
آمس = p.d..read_csv(“Ames.csv”)
# ویژگی های عددی زیر را به ویژگی های دسته بندی تبدیل کنید
آمس[‘MSSubClass’] = آمس[‘MSSubClass’].بی شکل(“شیء”)
آمس[‘YrSold’] = آمس[‘YrSold’].بی شکل(“شیء”)
آمس[‘MoSold’] = آمس[‘MoSold’].بی شکل(“شیء”)
# “PID” و “Sale Price” را از ویژگی ها حذف کنید و به طور خاص ستون “Electric” را مدیریت کنید
خصوصیات_دیجیتال = آمس.select_dtypes(شامل شود=[‘int64’, ‘float64’]).رها کردن(ستون ها=[‘PID’, ‘SalePrice’]).ستون ها
categorical_characteristics = آمس.select_dtypes(شامل شود=[‘object’]).ستون ها.تفاوت([‘Electrical’])
مشخصه_الکتریکی = [‘Electrical’]
# طبق فرهنگ لغت داده ها، دسته ها را برای کدگذاری ترتیبی به صورت دستی مشخص کنید
ordinal_order = {
‘برقی’: [‘Mix’, ‘FuseP’, ‘FuseF’, ‘FuseA’, ‘SBrkr’]، #سیستم برق
“فرم دسته ای”: [‘IR3’, ‘IR2’, ‘IR1’, ‘Reg’]، # شکل کلی مالکیت
“آب و برق”: [‘ELO’, ‘NoSeWa’, ‘NoSewr’, ‘AllPub’]، # نوع خدمات در دسترس
“شیب زمین”: [‘Sev’, ‘Mod’, ‘Gtl’]، # شیب ملک
“ExterQual”: [‘Po’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، # کیفیت مواد را در خارج ارزیابی می کند
“شرایط خارجی”: [‘Po’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، # وضعیت فعلی تجهیزات را به صورت خارجی ارزیابی می کند
“صلاحیت Bsmt”: [‘None’, ‘Po’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، #ارتفاع زیرزمین
«شرط پایه »: [‘None’, ‘Po’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، # وضعیت عمومی زیرزمین
نمایشگاه Bsmt: [‘None’, ‘No’, ‘Mn’, ‘Av’, ‘Gd’]، # دیوارهای زیرزمین یک طبقه یا در سطح باغ
“BsmtFinType1”: [‘None’, ‘Unf’, ‘LwQ’, ‘Rec’, ‘BLQ’, ‘ALQ’, ‘GLQ’]، # کیفیت سطح تمام شده زیرزمین
“BsmtFinType2”: [‘None’, ‘Unf’, ‘LwQ’, ‘Rec’, ‘BLQ’, ‘ALQ’, ‘GLQ’]، # کیفیت سطح تمام شده زیرزمین دوم
“HeatingQC”: [‘Po’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، # کیفیت و وضعیت گرمایش
“CuisineQual”: [‘Po’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، #کیفیت آشپزی
“عملکردی”: [‘Sal’, ‘Sev’, ‘Maj2’, ‘Maj1’, ‘Mod’, ‘Min2’, ‘Min1’, ‘Typ’]، # ویژگی های صفحه اصلی
‘ChimneyQu’: [‘None’, ‘Po’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، #کیفیت دودکش
“تکمیل گاراژ”: [‘None’, ‘Unf’, ‘RFn’, ‘Fin’]، # تکمیل داخلی گاراژ
“GarageQual”: [‘None’, ‘Po’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، # کیفیت گاراژ
“GarageCond”: [‘None’, ‘Po’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، # وضعیت گاراژ
“PaveDrive”: [‘N’, ‘P’, ‘Y’]، # مسیر آسفالت شده
PoolQC: [‘None’, ‘Fa’, ‘TA’, ‘Gd’, ‘Ex’]، #کیفیت استخر
“حصار”: [‘None’, ‘MnWw’, ‘GdWo’, ‘MnPrv’, ‘GdPrv’] # کیفیت نرده
}
# لیست تمام ویژگی های ترتیبی را از فرهنگ لغت استخراج کنید
صفات_ترتیبی = فهرست(ordinal_order.کلیدها())
# فهرست مشخصات ترتیبی به جز الکتریکی
ترتیبی_جز_الکتریکی = [feature for feature in ordinal_features if feature != ‘Electrical’]
# تابع کمکی برای پر کردن “هیچ” برای داده های طبقه بندی نشده
دف fill_none(X):
برگشت X.پر کردن(“هیچ”)
# Pipeline برای “Electric”: مقدار از دست رفته را با حالت پر کنید، سپس کدگذاری ترتیبی را اعمال کنید
ترانسفورماتور_الکتریکی = خط لوله(اقدامات=[
(‘impute_electrical’, SimpleImputer(strategy=‘most_frequent’)),
(‘ordinal_electrical’, OrdinalEncoder(categories=[ordinal_order[‘Electrical’]]))
])
# Pipeline برای ویژگی های عددی: مقادیر گمشده را با استفاده از میانگین درج کنید
ترانسفورماتور_دیجیتال = خط لوله(اقدامات=[
(‘impute_mean’, SimpleImputer(strategy=‘mean’))
])
# خط لوله برای ویژگی های ترتیبی: مقادیر گم شده را با “None” پر کنید، سپس کدگذاری ترتیبی را اعمال کنید
ترانسفورماتور_ترتیبی = خط لوله(اقدامات=[
(‘fill_none’, FunctionTransformer(fill_none, validate=False)),
(‘ordinal’, OrdinalEncoder(categories=[ordinal_order[feature] برای عملکرد در صفات_ترتیبی اگر عملکرد در ترتیبی_جز_الکتریکی]))
])
# خط لوله برای ویژگی های طبقه بندی اسمی: مقادیر از دست رفته را با “None” پر کنید، سپس رمزگذاری یکباره را اعمال کنید
ویژگی های اسمی = [feature for feature in categorical_features if feature not in ordinal_features]
categorial_transformer = خط لوله(اقدامات=[
(‘fill_none’, FunctionTransformer(fill_none, validate=False)),
(‘onehot’, OneHotEncoder(handle_unknown=‘ignore’))
])
# پیش پردازنده ترکیبی برای داده های عددی، ترتیبی، اسمی و الکتریکی خاص
پیش پردازنده = ترانسفورماتور ستونی(
ترانسفورماتورها=[
(‘electrical’, electrical_transformer, [‘Electrical’])،
(“تعداد”، ترانسفورماتور_دیجیتال، خصوصیات_دیجیتال)،
(“عادی”، ترانسفورماتور_ترتیبی، ترتیبی_جز_الکتریکی)،
(“اسمی”، categorical_transformer، ویژگی های اسمی)
])
# خط لوله پیش پردازش را به Ames اعمال کنید
داده های تبدیل شده = پیش پردازنده.تنظیم_ترانسفورماتور(آمس).آرایه()
# نام ستونها را برای ویژگیهای کدگذاری شده یکطرفه ایجاد کنید
ویژگی های onehot = پیش پردازنده.به نام_ترانسفورماتور_[‘nominal’].به نام مراحل[‘onehot’].get_feature_names()
# همه نام ویژگی ها را ترکیب کنید
all_feature_names = [‘Electrical’] + فهرست(خصوصیات_دیجیتال) + فهرست(ترتیبی_جز_الکتریکی) + فهرست(ویژگی های onehot)
# آرایه تبدیل شده را به DataFrame تبدیل کنید
transformed_df = p.d..چارچوب داده(داده های تبدیل شده، ستون ها=all_feature_names)