(function (s, e, n, d, er) { s['Sender'] = er; s[er] = s[er] || function () { (s[er].q = s[er].q || []).push(arguments) }, s[er].l = 1 * new Date(); var a = e.createElement(n), m = e.getElementsByTagName(n)[0]; a.async = 1; a.src = d; m.parentNode.insertBefore(a, m) })(window, document, 'script', 'https://cdn.sender.net/accounts_resources/universal.js', 'sender'); sender('986212f6399684')
دیتاست یادگیری ماشین استاندارد

  این مقاله را میتوانید در مدت زمان 13 دقیقه مطالعه کنید   منتشر شده در تاریخ: تیر ۲۵ام, ۱۳۹۹   آخرین بروزرسانی: مهر ۲۶ام, ۱۴۰۰


بهتر است مبتدیان در یادگیری ماشین بر روی دیتاست‌های (مجموعه داده های) کوچک دنیای واقعی تمرین کنند. به اصطلاح مجموعه داده های یادگیری ماشین استاندارد شامل مشاهدات واقعی هستند و به خوبی مورد مطالعه و درک قرار می گیرند. به این ترتیب افراد می توانند از آن ها برای آزمایش سریع، اکتشاف و تمرین تکنیک های آماده سازی داده ها و مدل سازی استفاده کنند.

مهارت های ایجاد شده، در مجموعه داده های یادگیری ماشین استاندارد، می تواند زمینه را برای انجام پروژه های بزرگتر و چالش برانگیز فراهم آورد.

در این مقاله دیتاست های استاندارد یادگیری ماشین برای طبقه بندی باینری را مطالعه خواهید کرد.

 

ارزش دیتا‌ست‌های یادگیری ماشین کوچک

تعدادی دیتا‌ست یادگیری ماشین کوچک برای طبقه بندی و مسائل مدل سازی پیش بینی رگرسیون وجود دارند که اغلب مورد استفاده قرار می گیرند. گاهی اوقات مجموعه داده ها به عنوان پایه ای برای نشان دادن روش یادگیری ماشین یا تکنیک تهیه داده استفاده می شود. در مواردی دیگر، از آنها به عنوان پایه ای برای مقایسه تکنیک های مختلف استفاده می گردد.

این داده ها در اوایل ظهور یادگیری ماشین جمع آوری و در دسترس عموم قرار گرفتند. پیدا کردن یک مدل خوب در یکی از این مجموعه داده ها به این معنی نیست که شما مشکل کلی را حل کرده اید. همچنین، برخی از مجموعه داده ها ممکن است حاوی اسامی یا نشانگرهایی باشند که ممکن است از نظر فرهنگی بحث برانگیز تلقی شوند. به این نوع مجموعه داده‌ها، مجموعه داده های “TOY” می گویند.

 

تعریف دیتاست یادگیری ماشین استاندارد

یک مجموعه داده استاندارد یادگیری ماشین دارای خصوصیات زیر است.

  • کمتر از ١٠٠٠٠ردیف (نمونه).
  • کمتر از ١٠٠ ستون (ویژگی).
  • ستون آخر متغیر هدف است.
  • در یک پرونده واحد با فرمت CSV و بدون خط Header ذخیره می شود.
  • مقادیر ناموجود با یک علامت سؤال (“؟”) مشخص می شوند.

 

اکنون که تعریف واضحی از مجموعه داده داریم، ببینیم که یک نتیجه “خوب” به چه معنی است.

 

دیتاست یادگیری ماشین استاندارد

دیتاست یادگیری ماشین

یک دیتاست یادگیری ماشین زمانی استاندارد است که مرتبا در کتاب ها، مقالات تحقیقاتی، آموزش ها، سخنرانی ها و موارد دیگر مورد استفاده قرار بگیرد. بهترین مخزن برای این مجموعه داده های به اصطلاح کلاسیک یا استاندارد یادگیری ماشین، مخزن یادگیری ماشین دانشگاه UCI است. این وب سایت مجموعه داده ها را براساس نوعشان طبقه بندی کرده و بارگیری داده ها و اطلاعات اضافی در مورد هر مجموعه داده و مقالات مربوطه را ارائه می دهد.

 

نتایج خوب برای مجموعه داده های استاندارد

چالش برای مبتدیان هنگام کار با مجموعه داده های یادگیری ماشین استاندارد این است که چه چیزی یک نتیجه خوب را رقم میزند. خوب به معنای پیش بینی های کامل نیست. همه مدل ها دارای خطاهای پیش بینی هستند و پیش بینی های کامل در مجموعه های داده های دنیای واقعی امکان پذیر نیست. تعریف نتایج “خوب” یا “عالی” برای یک مجموعه داده چالش برانگیز است؛ زیرا به طور کلی به روش ارزیابی مدل، نسخه های مجموعه داده و کتابخانه های مورد استفاده در ارزیابی بستگی دارد.

خوب به معنای “به اندازه کافی خوب” با توجه به منابع موجود است. غالباً ، این به معنای نمره مهارتی (skill score) بالاتر از ٨٠ یا ٩٠ درصد است.

 

نتایج برای مجموعه داده های طبقه بندی

طبقه بندی یک مساله مدل سازی پیش بینی است که با توجه به یک یا چند متغیر ورودی یک برچسب پیش بینی می کند.

خط مبنا در تسک های طبقه بندی مدلی است که برچسب اکثریت را پیش بینی می کند. در scikit-learn با استفاده از کلاس DummyClassifier با استراتژی ‘most_frequent learn. به عنوان مثال:

پ

model = DummyClassifier(strategy='most_frequent'

 

ارزیابی استاندارد برای مدل های طبقه بندی، دقت طبقه بندی است.

دو نوع اصلی تسک طبقه بندی وجود دارد: طبقه بندی باینری (binary) و چند طبقه (multi-class).

 

دیتاست های طبقه بندی باینری

در این بخش، ما خط مبنا و عملکرد خوب را در دیتاست‌های مدل سازی پیش بینی طبقه بندی باینری زیر بررسی خواهیم کرد:

 

  • Ionosphere
  • Pima Indian Diabetes
  • Sonar
  • Wisconsin Breast Cancer
  • Horse Colic

 

Ionosphere

فایل های زیر را دانلود کنید

ionosphere.csv

ionosphere.names

 

مثال کامل کد برای دستیابی به خط مبنا و نتیجه خوب در این مجموعه داده در زیر آورده شده است.

#baseline and good result for Ionosphere
from numpy import mean 
from numpy import std 
from pandas import read_csv 
from sklearn.preprocessing import LabelEncoder 
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import RepeatedStratifiedKFold
from sklearn.pipeline import Pipeline 
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
from sklearn.dummy import DummyClassifier 
from sklearn.svm import SVC 
#load dataset 
url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/ionosphere.csv' 
dataframe = read_csv(url, header=None) 
data = dataframe.values 
X, y = data[:, :-1], data[:, -1] 
print('Shape: %s, %s' % (X.shape,y.shape)) 
# minimally prepare dataset 
X = X.astype('float32') y = LabelEncoder().fit_transform(y.astype('str')) 
# evaluate naive 
naive = DummyClassifier(strategy='most_frequent') 
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1) 
n_scores = cross_val_score(naive, X, y, scoring='accuracy', 
cv=cv, n_jobs=-1, error_score='raise') 
print('Baseline: %.3f (%.3f)' % (mean(n_scores), std(n_scores))) 
# evaluate model 
model = SVC(kernel='rbf', gamma='scale', C=10) steps = [('s',StandardScaler()), ('n',MinMaxScaler()), ('m',model)] 
pipeline = Pipeline(steps=steps) 
m_scores = cross_val_score(pipeline, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise') 
print('Good: %.3f (%.3f)' % (mean(m_scores), std(m_scores)))

 

با اجرای مثال، باید نتایج زیر را مشاهده کنید.

Shape: (351, 34), (351,) Baseline: 0.641 (0.006) Good: 0.948 (0.033)

 

Pima Indian Diabetes

فایل های زیر را دانلود کنید:

pima-indians-diabetes.csv

pima-indians-diabetes.name

 

مثال کامل کد برای دستیابی به خط مبنا و نتیجه خوب در این مجموعه داده در زیر آورده شده است.

baseline and good result for Pima Indian Diabetes
from numpy import mean 
from numpy import std 
from pandas import read_csv 
from sklearn.preprocessing import LabelEncoder 
from sklearn.model_selection import cross_val_score 
from sklearn.model_selection import RepeatedStratifiedKFold 
from sklearn.dummy import DummyClassifier 
from sklearn.linear_model import LogisticRegression 
# load dataset 
url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.csv' 
dataframe = read_csv(url, header=None) d
ata = dataframe.values 
X, y = data[:, :-1], data[:, -1] 
print('Shape: %s, %s' % (X.shape,y.shape)) 
# minimally prepare dataset 
X = X.astype('float32') y = LabelEncoder().fit_transform(y.astype('str')) 
# evaluate naive naive = DummyClassifier(strategy='most_frequent') 
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1) 
n_scores = cross_val_score(naive, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise') 
print('Baseline: %.3f (%.3f)' % (mean(n_scores), std(n_scores))) 
# evaluate model model = LogisticRegression(solver='newton-cg',penalty='l2',C=1) 
m_scores = cross_val_score(model, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise') 
print('Good: %.3f (%.3f)' % (mean(m_scores), std(m_scores)))

 

با اجرای مثال، باید نتایج زیر را مشاهده کنید.

Shape: (768, 8), (768,) Baseline: 0.651 (0.003) Good: 0.774 (0.055)

 

Sonar

فایل های زیر را دانلود کنید:

sonar.csv

sonar.names

 

مثال کامل کد برای دستیابی به خط مبنا و نتیجه خوب در این مجموعه داده در زیر آورده شده است.

#baseline and good result for Sonar 
from numpy import mean 
from numpy import std 
from pandas import read_csv 
from sklearn.preprocessing import LabelEncoder 
from sklearn.model_selection import cross_val_score 
from sklearn.model_selection import RepeatedStratifiedKFold 
from sklearn.pipeline import Pipeline 
from sklearn.preprocessing import PowerTransformer 
from sklearn.dummy import DummyClassifier 
from sklearn.neighbors import KNeighborsClassifier 
# load dataset url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/sonar.csv' 
dataframe = read_csv(url, header=None) 
data = dataframe.values 
X, y = data[:, :-1], data[:, -1] 
print('Shape: %s, %s' % (X.shape,y.shape)) 
# minimally prepare dataset 
X = X.astype('float32') y = LabelEncoder().fit_transform(y.astype('str')) 
# evaluate naive naive = DummyClassifier(strategy='most_frequent') 
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(naive, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise') 
print('Baseline: %.3f (%.3f)' % (mean(n_scores), std(n_scores))) 
# evaluate model model = KNeighborsClassifier(n_neighbors=2, metric='minkowski', weights='distance') 
steps = [('p',PowerTransformer()), ('m',model)] 
pipeline = Pipeline(steps=steps) 
m_scores = cross_val_score(pipeline, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise') 
print('Good: %.3f (%.3f)' % (mean(m_scores), std(m_scores)))

 

با اجرای مثال، باید نتایج زیر را مشاهده کنید.

Shape: (208, 60), (208,) Baseline: 0.534 (0.012) Good: 0.882 (0.071)

Wisconsin Breast Cancer

فایل های زیر را دانلود کنید:

breast-cancer-wisconsin.csv

breast-cancer-wisconsin.names

 

مثال کامل کد برای دستیابی به خط مبنا و نتیجه خوب در این مجموعه داده در زیر آورده شده است.

 

#baseline and good result for Wisconsin Breast Cancer 
from numpy import mean 
from numpy import std 
from pandas import read_csv 
from sklearn.preprocessing import LabelEncoder 
from sklearn.model_selection import cross_val_score 
from sklearn.model_selection import RepeatedStratifiedKFold 
from sklearn.pipeline import Pipeline 
from sklearn.preprocessing import PowerTransformer 
from sklearn.impute import SimpleImputer 
from sklearn.dummy import DummyClassifier 
from sklearn.svm import SVC 
# load dataset
 url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/breast-cancer-wisconsin.csv' 
dataframe = read_csv(url, header=None, na_values='?') 
data = dataframe.values 
X, y = data[:, :-1], data[:, -1] print('Shape: %s, %s' % (X.shape,y.shape)) 
# minimally prepare dataset
X = X.astype('float32') y = LabelEncoder().fit_transform(y.astype('str')) 
# evaluate naive 
naive = DummyClassifier(strategy='most_frequent') 
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1) 
n_scores = cross_val_score(naive, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise') 
print('Baseline: %.3f (%.3f)' % (mean(n_scores), std(n_scores))) 
# evaluate model 
model = SVC(kernel='sigmoid', gamma='scale', C=0.1) steps = [('i',SimpleImputer(strategy='median')), ('p',PowerTransformer()), ('m',model)] 
pipeline = Pipeline(steps=steps)
m_scores = cross_val_score(pipeline, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise') 
print('Good: %.3f (%.3f)' % (mean(m_scores), std(m_scores)))

 

با اجرای مثال، باید نتایج زیر را مشاهده کنید:

Shape: (699, 9), (699,) Baseline: 0.655 (0.003) Good: 0.973 (0.019)

 

Horse Colic

فایل های زیر را دانلود کنید:

horse-colic.csv

horse-colic.names

 

مثال کامل کد برای دستیابی به خط مبنا و نتیجه خوب در این مجموعه داده در زیر آورده شده است.

 

#baseline and good result for Horse Colic 
from numpy import mean 
from numpy import std 
from pandas import read_csv 
from sklearn.preprocessing import LabelEncoder 
from sklearn.model_selection import cross_val_score 
from sklearn.model_selection import RepeatedStratifiedKFold 
from sklearn.pipeline import Pipeline 
from sklearn.impute import SimpleImputer 
from sklearn.dummy import DummyClassifier 
from sklearn.ensemble import RandomForestClassifier 

# load dataset 
url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/horse-colic.csv' dataframe = read_csv(url, header=None, na_values='?') 
data = dataframe.values ix = [i for i in range(data.shape[1]) if i != 23] X, y = data[:, ix], data[:, 23] print('Shape: %s, %s' % (X.shape,y.shape)) 

# minimally prepare dataset 
X = X.astype('float32') y = LabelEncoder().fit_transform(y.astype('str')) 

# evaluate naive 
naive = DummyClassifier(strategy='most_frequent') 
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1) 
n_scores = cross_val_score(naive, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise') 
print('Baseline: %.3f (%.3f)' % (mean(n_scores), std(n_scores))) 

# evaluate model 
model = RandomForestClassifier(n_estimators=1000) 
imputer = SimpleImputer(strategy='median', add_indicator=True) 
pipeline = Pipeline(steps=[('i', imputer), ('m', model)]) 
m_scores = cross_val_score(pipeline, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise') 
print('Good: %.3f (%.3f)' % (mean(m_scores), std(m_scores)))

 

با اجرای مثال، باید نتایج زیر را مشاهده کنید.

Shape: (300, 27), (300,) Baseline: 0.637 (0.010) Good: 0.867 (0.055)

آیا این مطلب برای شما مفید بود؟

امتیازشو ثبت کنید

میانگین / 5. تعداد رای

اولین نفر شما امتیاز دهید

دوره تخصصی یادگیری ماشین

در یک دوره آموزشی متخصص یادگیری ماشین شوید.

از یادگیری ماشین می توان در صنایع مختلف با اهداف مختلف استفاده کرد. ماشین لرنینگ باعث افزایش بهره وری در صنایع می شود، به بازاریابی محصول کمک کرده و پیش بینی دقیق فروش را ساده تر می کند. پیش بینی های دقیق پزشکی و تشخیص ها را تسهیل می کند. دقت در قوانین و مدل های مالی را بهبود می بخشد. به سیستم های توصیه گر، الگوریتم های فرا ابتکاری و حرکت ربات ها کمک خواهد کرد. در بحث فروش میتواند محصولات مناسب تری را به مشتری پیشنهاد دهد( با کمک به تقسیم بندی بهتر و پیش بینی دقیق طول عمر محصولات ) و ...
استفاده از سیستم های ماشین لرنینگ می تواند تا حد زیادی حجم کاری ما را کاهش دهد. به خصوص کارهایی که نیاز به آنالیز حجم عظیمی از داده و تصمیم گیری بر اساس این داده ها را دارد بسیار تسهیل می کند. سیستم های مبتنی بر ماشین لرنینگ ظرفیت انجام کار صد نفر را همزمان دارد و تنها به کمک ماشین ها می توان بدون صرف وقت و انرژی زیاد، کارهای سنگین را انجام داده و در عین حال پول و درآمد بیشتری کسب کرد. ماشین لرنینگ با خودکارسازی فرایندها و صرفه جویی در زمان، به ما کمک می کند تا بتوانیم زمان و انرژی خود را بر تصمیم گیری های پیچیده تری متمرکز کنیم.
ادامه...

شاید به این مطالب نیز علاقه مند باشید.

یادگیری تحت نظارت

یادگیری نظارت شده در ماشین لرنینگ (راهنمای جامع)

امروزه یادگیری تحت نظارت شایع‌ترین شاخه فرعی یادگیری ماشین است. به طور معمول، متخصصان با یادگیری ماشین جدید سفر خود را با الگوریتم های یادگیری تحت نظارت آغاز خواهند کرد.…

یادگیری ماشین با پایتون

چرا پایتون بهترین زبان برنامه نویسی برای یادگیری ماشین است؟

یادگیری ماشین یکی از به روزترین شاخه های تکنولوژی در دوران مدرن است. طبق گفته فوربس، اختراعات ثبت شده توسط یادگیری ماشینی بین سالهای ۲۰۱۳ و ۲۰۱۷ رشد ۳۴درصدی داشته…

چشم انداز شغلی و درآمد ماشین لرنینگ در ۲۰۲۲

چشم انداز شغلی و درآمدی ماشین لرنینگ (۲۰۲۲)

من هنوز استرسی را که برای انتخاب رشته داشتم یادم است. رتبه‌ی بسیار خوبی در کنکور آورده بودم و همه می‌گفتند باید بروی مهندسی عمران بخوانی. چون همه معتقد بودند…

0 0 رای
امتیازدهی به مقاله
دنبال کردن
با خبر کردن از
guest
0 دیدگاه
بازخورد داخلی
دیدن همه نظرات

تاییدیه ها

تهران - ستارخان، خیابان کوثر دوم، پلاک ۱۰، واحد ۳

آیا این مطلب برای شما مفید بود؟

امتیازشو ثبت کنید

میانگین / 5. تعداد رای

اولین نفر شما امتیاز دهید

دوره تخصصی یادگیری ماشین

در یک دوره آموزشی متخصص یادگیری ماشین شوید.

از یادگیری ماشین می توان در صنایع مختلف با اهداف مختلف استفاده کرد. ماشین لرنینگ باعث افزایش بهره وری در صنایع می شود، به بازاریابی محصول کمک کرده و پیش بینی دقیق فروش را ساده تر می کند. پیش بینی های دقیق پزشکی و تشخیص ها را تسهیل می کند. دقت در قوانین و مدل های مالی را بهبود می بخشد. به سیستم های توصیه گر، الگوریتم های فرا ابتکاری و حرکت ربات ها کمک خواهد کرد. در بحث فروش میتواند محصولات مناسب تری را به مشتری پیشنهاد دهد( با کمک به تقسیم بندی بهتر و پیش بینی دقیق طول عمر محصولات ) و ...
استفاده از سیستم های ماشین لرنینگ می تواند تا حد زیادی حجم کاری ما را کاهش دهد. به خصوص کارهایی که نیاز به آنالیز حجم عظیمی از داده و تصمیم گیری بر اساس این داده ها را دارد بسیار تسهیل می کند. سیستم های مبتنی بر ماشین لرنینگ ظرفیت انجام کار صد نفر را همزمان دارد و تنها به کمک ماشین ها می توان بدون صرف وقت و انرژی زیاد، کارهای سنگین را انجام داده و در عین حال پول و درآمد بیشتری کسب کرد. ماشین لرنینگ با خودکارسازی فرایندها و صرفه جویی در زمان، به ما کمک می کند تا بتوانیم زمان و انرژی خود را بر تصمیم گیری های پیچیده تری متمرکز کنیم.
ادامه...