در این پست از سری آموزش رایگان TensorFlow به مسئله رگرسیون (Regression) می پردازیم. در رگرسیون ، هدف ما پیش بینی تولید یک مقدار مداوم (continuous ) است، مانند افزایش و کاهش قیمت طلا یا یک احتمال وقوع یک اتفاق . در مقایسه با مبحث دسته بندی (classification) ، جایی که ما قصد داشتیم یک کلاس را از لیست کلاس ها انتخاب کنیم .
دیتاست و پیشنیاز ها:
در این آموزش ما از دیتاست معروف Auto MPG استفاده می کنیم. ما مدلی را برای پیش بینی راندمان سوخت خودروهای اواخر دهه 1970 و اوایل دهه 1980 ایجاد می کنیم. برای این کار ، توضیحی در مورد بسیاری از خودروها از آن دوره زمانی مدل ارائه می دهیم. این توضیحات شامل ویژگی هایی مانند: سیلندر ، جابجایی ، اسب بخار و وزن است.
مواد مورد نیاز برای این آزمایش : کتابخانه seaborn برای به نمودار و نمایش کشیدن نتایج. خود TensorFlow. خود Keras. گوگل درایو و افزونه Google Colab.برای شروع وارد گوگل درایو خود شده و یک فایل ipynb ایجاد کنید در اولین قدم با قطعه کد زیر کتابخانه seaborn را نصب و فعال کنید :
[python]
!pip install -q seaborn
[/python]
خوب حالا زمان فراخوانی کتابخانه های پیشفرض است :
[python]
from __future__ import absolute_import, division, print_function, unicode_literals
import pathlib
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
print(tf.__version__)
[/python]
دیتا ست را از سایت اصلی باید دانلود کنیم (اینجا). برا این کار کد زیر را اجرا بگیرید:
[python]
dataset_path = keras.utils.get_file("auto-mpg.data", "https://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data")
dataset_path
[/python]
خوب مثل همیشه باید داده ها را بدانیم تا بتوانید به سیستم آموزش دهیم. برای نمایش داده ها از pandas استفاده میکنیم. pandas یک کتابخانه متن باز بسیار قدرتمند است. این کتابخانه ساختارهای داده با کارایی بالا و کاربرد آسان و ابزارهای تحلیل داده برای زبان برنامه نویسی پایتون را ارائه می دهد.
[python]
column_names = [‘MPG’,’Cylinders’,’Displacement’,’Horsepower’,’Weight’,
‘Acceleration’, ‘Model Year’, ‘Origin’]
raw_dataset = pd.read_csv(dataset_path, names=column_names,
na_values = "?", comment=’\t’,
sep=" ", skipinitialspace=True)
dataset = raw_dataset.copy()
dataset.tail()
[/python]
نتیجه کد:
پاکسازی داده ها:
می دانیم که مجموعه داده شامل مقادیر ناشناخته ای است. برای همین منظور از اصلا پاکسازی داده استفاده میکنیم. سپس سطر های مورد نظر را از دیتاست دانلودی حذف میکنیم تا کار ساده تر گردد:
[python]
dataset.isna().sum()
dataset = dataset.dropna()
[/python]
اما همانگونه که در استفاده از کتابخانه panda متوجه شدیم، این دیتاست دارای ستون هایی با نام طبقه بندی است و عددی نیست . پس باید از تکنیک One Hot Encoding استفاده کنیم . این تکنیک متغیرهای طبقه بندی شده را یه بردارهای باینری تبدیل می کند. این امر ابتدا نیاز دارد که مقادیر طبقه بندی شده در مقادیر عدد صحیح خود تخصیص داده شوند. سپس ، هر مقدار عدد صحیح به عنوان یک بردار باینری نمایش داده می شود که تمام مقادیر صفر به جز شاخص عدد صحیح است که با علامت 1 مشخص می شود. کد :
[python]
origin = dataset.pop(‘Origin’)
dataset[‘USA’] = (origin == 1)*1.0
dataset[‘Europe’] = (origin == 2)*1.0
dataset[‘Japan’] = (origin == 3)*1.0
dataset.tail()
[/python]
نتیجه کد:
پایان بخش اول.