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

مقدمه:

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

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

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

 

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

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

این داده ها در اوایل ظهور یادگیری ماشین جمع آوری و در دسترس عموم قرار گرفتند. پیدا کردن یک مدل خوب در یکی از این مجموعه داده ها به این معنی نیست که شما مشکل کلی را حل کرده اید. همچنین، برخی از مجموعه داده ها ممکن است حاوی اسامی یا نشانگرهایی باشند که ممکن است از نظر فرهنگی بحث برانگیز تلقی شوند. به این نوع مجموعه داده‌ها، مجموعه داده های “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

 

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

# 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)))

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

1

2

3

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

 

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

# 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)

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 = 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)))

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

1

2

3

Shape: (768, 8), (768,)

Baseline: 0.651 (0.003)

Good: 0.774 (0.055)

 

Sonar

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

sonar.csv

sonar.names

 

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

# 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)))

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

1

2

3

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

 

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

# 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)))

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

1

2

3

Shape: (699, 9), (699,)

Baseline: 0.655 (0.003)

Good: 0.973 (0.019)

 

Horse Colic

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

horse-colic.csv

horse-colic.names

 

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

# 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)))

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

1

2

3

Shape: (300, 27), (300,)

Baseline: 0.637 (0.010)

Good: 0.867 (0.055)

 

امیدواریم با حل مثال های فوق تا حدودی با دیتاست یادگیری ماشین استاندارد آشنا شده باشید. فایل این مقاله را می توانید از لینک زیر دانلود نمایید.

دیتاست یادگیری ماشین استاندارد + ۵ مثال کامل در دیتاست های طبقه بندی باینری pdf

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

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

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

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

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

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

اینستاگرام چگونه از یادگیری ماشین و هوش مصنوعی استفاده می کند؟

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

کاربرد های یادگیری ماشین

۹ کاربرد جالب یادگیری ماشین در زندگی روزمره

ما در عصر طلایی یادگیری ماشین زندگی می کنیم و در میانه ی انقلابی هستیم که توسط برنامه های ماشین لرنینگ هدایت می شود. باور کنید یا نه ، یادگیری…

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

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

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

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
آکادمی آمانج
مهارت آموزی جهت ورود به بازار کار

تاییدیه ها

تهران - امیرآباد، دانشکده فنی دانشگاه تهران، ساختمان مکانیک جدید واحد ۱۱۴

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

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

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

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

کد تخفیف نمیخوای؟

اگه میخوای کد تخفیف شرکت در دوره‌ها، وبینارهای رایگان، بهترین مقالات آکادمی آمانج رو از دست ندی ایمیلت رو این زیر وارد کن!
همین الان عضو شو
close-link
من اینجام