cari
RumahPeranti teknologiAITingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik

Pada lengkung ingat-kejituan, titik yang sama diplot dengan paksi yang berbeza. Amaran: Titik merah pertama di sebelah kiri (0% ingat, 100% ketepatan) sepadan dengan 0 peraturan. Titik kedua di sebelah kiri ialah peraturan pertama, dan seterusnya.

Skope-rules menggunakan model pokok untuk menjana calon peraturan. Mula-mula bina beberapa pepohon keputusan dan pertimbangkan laluan dari nod akar ke nod dalaman atau nod daun sebagai calon peraturan. Peraturan calon ini kemudiannya ditapis oleh beberapa kriteria yang telah ditetapkan seperti ketepatan dan ingat semula. Hanya mereka yang mempunyai ketepatan dan ingatan di atas ambang mereka dikekalkan. Akhir sekali, penapisan persamaan digunakan untuk memilih peraturan dengan kepelbagaian yang mencukupi. Secara umum, Skope-rules digunakan untuk mempelajari peraturan asas bagi setiap punca.

Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik

Alamat projek: https://github.com/scikit-learn-contrib/skope-rules

  • Skope-rules ialah binaan Modul pembelajaran mesin Python di atas pembelajaran scikit, dikeluarkan di bawah lesen BSD 3 fasal.
  • Peraturan Skope bertujuan untuk mempelajari peraturan yang logik dan boleh ditafsir untuk "mendefinisikan" kategori sasaran, iaitu, mengesan kejadian kategori ini dengan ketepatan yang tinggi.
  • Peraturan Skope ialah pertukaran antara kebolehtafsiran pokok keputusan dan keupayaan pemodelan hutan rawak.

Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik

skema

Pemasangan

Anda boleh menggunakan pip untuk mendapatkan sumber terkini:

pemasangan pip skope-rules

Quick Start

SkopeRules boleh digunakan untuk menerangkan kelas dengan peraturan logik:

dari sklearn.datasets import load_iris
dari skrules import SkopeRules

set data = load_iris()
feature_names = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
clf = SkopeRules(max_depth_duplicatinotallow=2,
= n
> precision_min=0.3 ,
recall_min=0.1,
feature_names=feature_names)

untuk idx, spesies dalam enumerate(dataset.target_names):
X, y = dataset.data, dataset. target
clf.fit(X, y == idx)
peraturan = clf.rules_[0:3]
print("Peraturan untuk iris", spesies)
untuk peraturan dalam peraturan:
print( peraturan)
print()
print(20*'=')
print()

Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik

Nota:

jika Ralat berikut:

Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik

Penyelesaian:

Mengenai ralat import Python: tidak boleh mengimport nama 'enam' daripada 'sklearn.externals' , Yun Duojun pada Stack Overflow Menemui soalan yang sama pada: https://stackoverflow.com/questions/61867945/

Penyelesaian adalah seperti berikut

import enam
import sys
sys. modul['sklearn .externals.six'] = enam
import mlrose

Ujian peribadi berfungsi!

SkopeRules juga boleh digunakan sebagai peramal jika menggunakan kaedah "score_top_rules":

daripada sklearn.datasets import load_boston
daripada sklearn.metrics import precision_recall_curve
from pytplotplotlibrom plt
dari skrules import SkopeRules

set data = load_boston()
clf = SkopeRules(max_depth_duplicatinotallow=Tiada,
n_estimators=30,
precision_min🎜> precision_min🎜> ,
feature_names=dataset.feature_names)

X, y = dataset.data, dataset.target > 25
X_train, y_train = X[:len(y)//2], y [:len(y)//2]
X_test, y_test = X[len(y)//2:], y[len(y)//2:]
clf.fit(X_train, y_train )
y_score = clf.score_top_rules(X_test) # Dapatkan skor risiko untuk setiap contoh ujian
precision, recall, _ = precision_recall_curve(y_test, y_score)
plt.plot(recall, precision)
plt.xlabel('Recall')
plt.ylabel('Precision')
plt.title('Precision Recall curve')
plt.show()

Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik

Kes Praktikal

Kes ini menunjukkan penggunaan peraturan skope pada set data Titanic yang terkenal.

situasi terpakai peraturan-skope:

  • Menyelesaikan masalah klasifikasi binari
  • Mengekstrak peraturan keputusan yang boleh ditafsir

Kes ini dibahagikan kepada 5 bahagian

  • Import perpustakaan berkaitan
  • Penyediaan data
  • Latihan model (menggunakan kaedah ScopeRules().score_top_rules()
  • Penjelasan tentang "peraturan survival" (menggunakan SkopeRules().rules_property).
  • Analisis prestasi (menggunakan kaedah SkopeRules.predict_top_rules()).

Import perpustakaan berkaitan

# Import skope-rules
dari skrules import SkopeRules

# Import perpustakaan
import panda sebagai pd
from import sklearn.ensemble GradientBoostingClassifier, RandomForestClassifier
daripada sklearn.model_selection import train_test_split
daripada sklearn.tree import DecisionTreeClassifier
import matplotlib.py🎜>import matplotlib.py🎜seleksi import _recall_curve
dari matplotlib import cm
import numpy sebagai np
daripada sklearn.metrics import confusion_matrix
daripada paparan import IPython.display

# Import data Titanic
data = pd.read_csv('../ data/titanic-train.csv')
Penyediaan data

# Padamkan baris dengan umur yang hilang

data = data.query('Umur == Umur')
# untuk Pembolehubah Sex mencipta nilai yang dikodkan
data['isFemale'] = (data['Sex'] == 'female') * 1
# Pembolehubah Embarked mencipta nilai yang dikodkan
data = pd. concat(
[data,
pd.get_dummies(data.loc[:,'Embarked'],
dummy_na=False,
prefix='Embarked',
prefix_sep='_' )],
paksi=1
)
# Padamkan pembolehubah yang tidak digunakan
data = data.drop(['Nama', 'Tiket', 'Kabin',
'PassengerId', ' Sex ', 'Embarked'],
axis = 1)
# Cipta set latihan dan ujian
X_train, X_test, y_train, y_test = train_test_split(
data.drop(['Survived'], paksi =1),
data['Survived'],
test_size=0.25, random_state=42)
feature_names = X_train.columns

print('Nama lajur ialah: ' + ' ' .join(feature_names.tolist())+'.')
print('Bentuk set latihan ialah: ' + str(X_train.shape) + '.')
Nama lajur ialah: Pclass Age SibSp Parch Fare

is Female Embarked_C Embarked_Q Embarked_S.
Bentuk set latihan ialah: (535, 9).
Latihan model

# Latih pengelas penggalak kecerunan dengan For penanda aras

gradient_boost_clf = GradientBoostingClassifier(random_state=42, n_estimators=30, max_depth = 5)
gradient_boost_clf.fit(X_train, y_train)

Test abenchmarking forest lf = RandomForestClassifier(random_state=42, n_estimators=30, max_depth = 5)
random_forest_clf.fit(X_train, y_train)

# Latih pengelas pokok keputusan untuk penandaarasan
random_forest_clf.fit(X_train, y_train)

# Latih pengelas pokok keputusan untuk penanda aras
pembetulan keputusan_keadaan_4C2 , max_depth = 5)
decision_tree_clf.fit(X_train, y_train)

# Latih pengelas skope-rules-boosting
skope_rules_clf = SkopeRules, random_state_names(feature_names=feature_0names=3
recall_min=0.05, precision_min=0.9,
max_samples=0.7,
max_depth_duplicatinotallow= 4, max_depth = 5)
skope_rules_clf.fit(y_🎜>gradient_boost_scoring = gradient_boost_clf.predict_proba(X_test)[:, 1]
random_forest_scoring = rawak_forest_clf.predict_proba(X_test)[:, 1]<_tre_predict_decision>
skope_rules_scoring = skope_rules_clf.score_top_rules(X_test)

Pengeluaran "Peraturan Kelangsungan Hidup"
# Dapatkan peraturan kelangsungan hidup yang dicipta Nombor Scetak("Peraturan Kelangsungan Hidup" + str(len(skope_rules_clf.rules_)) + "rules n")

# Cetak peraturan ini

rules_explanations = [
"3 Wanita di bawah umur 37 tahun ke bawah, melancong dahulu atau kelas kedua. "
"Wanita berumur lebih 3 tahun mengembara dalam kelas pertama atau kedua dan membayar lebih daripada 26 euro. "
"Seorang wanita yang mengembara kelas pertama atau kedua dan membayar lebih daripada 29 euro. "
"Perempuan yang berumur lebih 39 tahun dan melancong dalam kelas pertama atau kedua. "
]
print('Empat "Peraturan survival Titanic" yang berprestasi terbaik adalah seperti berikut:/n')
untuk i_rule, peraturan dalam enumerate(skope_rules_clf.rules_[:4] )
print(rule[0])
print('->'+rules_explanations[i_rule]+ 'n')

Mencipta 9 peraturan menggunakan SkopeRules >Empat "Titanic Survival Rules" yang berprestasi terbaik. adalah seperti berikut:

Umur 2.5 dan Pclass , dalam kelas pertama atau kedua


Umur > 2.5 dan Tambang > dan Pclass
Tambang > 29.356250762939453
dan Pclass ->

Umur > 38.5 dan Pclass dan adalah Perempuan >->

def compute_y_pred_from_query(X, rule):skor = np.zeros(X.shape[0])

X = X.reset_index(drop=True)
skor[senarai( X.query(rule).index)] = 1
pulangan(skor)

def compute_performances_from_y_pred(y_true, y_pred, index_name='default_index'):
df = pd.DataFrame(data=Frame
{
'ketepatan':[sum(y_true * y_pred)/sum(y_pred)],
'recall':[sum(y_true * y_pred)/sum(y_true)]
},
index=[index_name],
columns=['precision', 'recall']
)
return(df)

def compute_train_test_query_performances(X_train, y_train, X_test, y_train, X_test, y_train, X_test, y_train , peraturan):

y_train_pred = compute_y_pred_from_query(X_train, peraturan)
y_test_pred = compute_y_pred_from_query(X_test, rule)

prestasi = p
prestasi = p
d. >prestasi,
compute_prestasis_from_y_pred(y_train, y_train_pred, 'train_set')],
axis=0)
prestasi = pd.concat([
prestasis,
prestasi_red_p_y,
pred, ' set_test')],
axis=0)

pulangan(prestasi)


print('Ketepatan = 0.96 bermakna 96% daripada orang yang ditentukan oleh peraturan adalah yang terselamat . ')
print('Recall = 0.12 bermakna pemandiri yang dikenal pasti oleh peraturan menyumbang 12% daripada jumlah bilangan yang terselamat n')

untuk i dalam julat(4):
cetak ('Peraturan '+ str(i+1)+':')
paparan(compute_train_test_query_performances(X_train, y_train,
X_test, y_test,
skope_rules_clf.rules_[i][0]>) )

Ketepatan = 0.96 bermakna 96% daripada orang yang ditentukan oleh peraturan adalah yang terselamat. Imbas kembali = 0.12 bermakna pemandiri yang dikenal pasti mengikut peraturan menyumbang 12% daripada jumlah yang terselamat.


Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logikPengesanan prestasi model

def plot_titanic_scores(y_true, scores_with_line=[], scores_with_points=[],

labels_with_line=['Gradient_line=[] Boosting', 'Random Forest', 'Decision Tree'],

labels_with_points=['skope-rules']):
gradient = np.linspace(0, 1, 10)
color_list = [ cm .tab10(x) untuk x dalam kecerunan ]

rajah, paksi = plt.subplots(1, 2, figsize=(12, 5),
sharex=True, sharey=True)
ax = paksi[0]
n_line = 0
untuk i_score, markah dalam enumerate(scores_with_line):
n_line = n_line + 1
fpr, tpr, _ = roc_curve(y_true, score)
ax.plot(fpr, tpr, linestyle='-.', c=color_list[i_score], lw=1, label=labels_with_line[i_score])
untuk i_score, markah dalam enumerate(skor_dengan_mata):
fpr, tpr, _ = roc_curve(y_true, score)
ax.scatter(fpr[:-1], tpr[:-1], c=color_list[n_line + i_score], s=10, label=labels_with_points[ i_score])
ax.set_title("ROC", fnotallow=20)
ax.set_xlabel('Kadar Positif Palsu', fnotallow=18)
ax.set_ylabel('Kadar Positif Sebenar (Panggil Balik)' , fnotallow=18)
ax.legend(loc='lower center', fnotallow=8)

ax = axes[1]
n_line = 0
untuk i_score, markah dalam enumerate (skor_dengan_garis):
n_line = n_line + 1
precision, recall, _ = precision_recall_curve(y_true, score)
ax.step(recall, precision, linestyle='-.', c=color_list[i_score] ], lw=1, where='post', label=labels_with_line[i_score])
untuk i_score, score in enumerate(scores_with_points):
precision, recall, _ = precision_recall_curve(y_true, score)
ax.scatter(recall, precision, c=color_list[n_line + i_score], s=10, label=labels_with_points[i_score])
ax.set_title("Precision-Recall", fnotallow=20)
ax. set_xlabel('Recall (Kadar Positif Sebenar)', fnotallow=18)
ax.set_ylabel('Precision', fnotallow=18)
ax.legend(loc='lower center', fnotallow=8)
plt.show()

plot_titanic_scores(y_test,
scores_with_line=[gradient_boost_scoring, random_forest_scoring, decision_tree_scoring],
scores_with_points=[skope_rules_scoring]


Pada lengkung ROC, setiap titik merah sepadan dengan bilangan peraturan yang diaktifkan (daripada peraturan-skope). Sebagai contoh, titik terendah ialah titik hasil 1 peraturan (yang terbaik). Titik terendah kedua ialah titik hasil 2 peraturan, dan seterusnya.

Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logikPada lengkung ingat-kepersisan, titik yang sama diplot dengan paksi yang berbeza. Amaran: Titik merah pertama di sebelah kiri (0% ingat, 100% ketepatan) sepadan dengan 0 peraturan. Titik kedua di sebelah kiri ialah peraturan pertama, dan seterusnya.

Beberapa kesimpulan boleh dibuat daripada contoh ini.

  • peraturan skope berfungsi lebih baik daripada pokok keputusan.
  • Prestasi peraturan skope adalah serupa dengan peningkatan hutan/kecerunan rawak (dalam contoh ini).
  • Menggunakan 4 peraturan boleh mencapai prestasi yang sangat baik (61% ingat, 94% ketepatan) (dalam contoh ini).

n_rule_chosen = 4
y_pred = skope_rules_clf.predict_top_rules(X_test, n_rule_chosen)

print('Persembahan yang dicapai dengan '+str(n_rule)'+peraturan' berikut:')
compute_performances_from_y_pred(y_test, y_pred, 'test_set')

Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik

predict_top_rules(new_data, n_r) kaedah digunakan untuk mengira data_ramalan yang mana peraturan n_r skope-rules sebelumnya.

Atas ialah kandungan terperinci Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:51CTO.COM. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Cara Membina Pembantu AI Peribadi Anda Dengan Huggingface SmollmCara Membina Pembantu AI Peribadi Anda Dengan Huggingface SmollmApr 18, 2025 am 11:52 AM

Memanfaatkan kuasa AI di peranti: Membina CLI Chatbot Peribadi Pada masa lalu, konsep pembantu AI peribadi kelihatan seperti fiksyen sains. Bayangkan Alex, seorang peminat teknologi, bermimpi seorang sahabat AI yang pintar, yang tidak bergantung

AI untuk Kesihatan Mental dianalisis dengan penuh perhatian melalui inisiatif baru yang menarik di Stanford UniversityAI untuk Kesihatan Mental dianalisis dengan penuh perhatian melalui inisiatif baru yang menarik di Stanford UniversityApr 18, 2025 am 11:49 AM

Pelancaran AI4MH mereka berlaku pada 15 April, 2025, dan Luminary Dr. Tom Insel, M.D., pakar psikiatri yang terkenal dan pakar neurosains, berkhidmat sebagai penceramah kick-off. Dr. Insel terkenal dengan kerja cemerlangnya dalam penyelidikan kesihatan mental dan techno

Kelas Draf WNBA 2025 memasuki liga yang semakin meningkat dan melawan gangguan dalam talianKelas Draf WNBA 2025 memasuki liga yang semakin meningkat dan melawan gangguan dalam talianApr 18, 2025 am 11:44 AM

"Kami mahu memastikan bahawa WNBA kekal sebagai ruang di mana semua orang, pemain, peminat dan rakan kongsi korporat, berasa selamat, dihargai dan diberi kuasa," kata Engelbert, menangani apa yang telah menjadi salah satu cabaran sukan wanita yang paling merosakkan. Anno

Panduan Komprehensif untuk Struktur Data Terbina Python - Analytics VidhyaPanduan Komprehensif untuk Struktur Data Terbina Python - Analytics VidhyaApr 18, 2025 am 11:43 AM

Pengenalan Python cemerlang sebagai bahasa pengaturcaraan, terutamanya dalam sains data dan AI generatif. Manipulasi data yang cekap (penyimpanan, pengurusan, dan akses) adalah penting apabila berurusan dengan dataset yang besar. Kami pernah meliputi nombor dan st

Tayangan pertama dari model baru Openai berbanding dengan alternatifTayangan pertama dari model baru Openai berbanding dengan alternatifApr 18, 2025 am 11:41 AM

Sebelum menyelam, kaveat penting: Prestasi AI adalah spesifik yang tidak ditentukan dan sangat digunakan. Dalam istilah yang lebih mudah, perbatuan anda mungkin berbeza -beza. Jangan ambil artikel ini (atau lain -lain) sebagai perkataan akhir -sebaliknya, uji model ini pada senario anda sendiri

AI Portfolio | Bagaimana untuk membina portfolio untuk kerjaya AI?AI Portfolio | Bagaimana untuk membina portfolio untuk kerjaya AI?Apr 18, 2025 am 11:40 AM

Membina portfolio AI/ML yang menonjol: Panduan untuk Pemula dan Profesional Mewujudkan portfolio yang menarik adalah penting untuk mendapatkan peranan dalam kecerdasan buatan (AI) dan pembelajaran mesin (ML). Panduan ini memberi nasihat untuk membina portfolio

AI AI apa yang boleh dimaksudkan untuk operasi keselamatanAI AI apa yang boleh dimaksudkan untuk operasi keselamatanApr 18, 2025 am 11:36 AM

Hasilnya? Pembakaran, ketidakcekapan, dan jurang yang melebar antara pengesanan dan tindakan. Tak satu pun dari ini harus datang sebagai kejutan kepada sesiapa yang bekerja dalam keselamatan siber. Janji Agentic AI telah muncul sebagai titik perubahan yang berpotensi. Kelas baru ini

Google Versus Openai: AI berjuang untuk pelajarGoogle Versus Openai: AI berjuang untuk pelajarApr 18, 2025 am 11:31 AM

Impak segera berbanding perkongsian jangka panjang? Dua minggu yang lalu Openai melangkah ke hadapan dengan tawaran jangka pendek yang kuat, memberikan akses kepada pelajar A.S. dan Kanada.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)