Penjelasan terperinci tentang algoritma penyingkiran calon yang dilaksanakan dalam Python

王林
Lepaskan: 2024-01-23 23:27:04
ke hadapan
1270 orang telah melayarinya

Penjelasan terperinci tentang algoritma penyingkiran calon yang dilaksanakan dalam Python

Algoritma penyingkiran calon ialah algoritma pembelajaran mesin berdasarkan penaakulan induktif yang digunakan untuk mempelajari konsep daripada data latihan yang diberikan. Tujuannya adalah untuk meringkaskan semua contoh dalam data latihan ke dalam huraian konsep yang paling umum, iaitu proses "pembelajaran konsep".

Idea asas algoritma penyingkiran calon adalah untuk memulakan penerangan konsep yang paling khusus dan penerangan konsep yang paling umum, dan kemudian menyemaknya secara beransur-ansur sehingga akhirnya memperoleh penerangan konsep yang paling umum, iaitu konsep yang diingini. . ​​​ke "?" , menunjukkan ketidakpastian;

Penerangan konsep paling umum G0: mulakan semua nilai atribut kepada "∅", menunjukkan bahawa ia tidak mengandungi sebarang nilai atribut. . :

Untuk setiap atribut dalam S, jika nilai atribut dalam contoh berbeza daripada nilai atribut yang sepadan dalam S, tukar nilai atribut dalam S kepada "?"

Untuk setiap atribut dalam G, jika instance Jika nilai atribut dalam G adalah berbeza daripada nilai atribut yang sepadan dalam G, maka tukar nilai atribut dalam G kepada nilai atribut dalam contoh. . atribut yang sepadan dalam G Jika nilai adalah sama, tukar nilai atribut dalam G kepada "?".

Huraian konsep yang paling umum akhirnya diperolehi adalah konsep yang diingini.

Yang berikut menggunakan contoh mudah untuk menggambarkan proses permohonan algoritma penyingkiran calon. Katakan kita ingin mempelajari konsep daripada 5 contoh latihan berikut:

Mengikut langkah algoritma, kita mula-mula memulakan penerangan konsep yang paling spesifik dan penerangan konsep yang paling umum:

S0:

S1:

G1:

Misalnya 2: ia tergolong dalam S

S2:

G2:

Sebagai contoh 3: ia tidak termasuk dalam konsep yang dikehendaki:

S3: ?

S4: ,?, >

G5:

, iaitu "haiwan akuatik" ".

Berikut ialah kod Python untuk melaksanakan algoritma penyingkiran calon:

import numpy as np

def candidate_elimination(examples):
    # 初始化最特殊概念描述和最一般概念描述
    S = np.array(['?' for _ in range(len(examples[0]) - 1)])
    G = np.array(['∅' for _ in range(len(examples[0]) - 1)])
    # 对于每个训练实例,进行如下处理
    for i, example in enumerate(examples):
        x, y = example[:-1], example[-1]
        if y == '是':  # 正例
            # 更新最特殊概念描述S和最一般概念描述G
            for j in range(len(x)):
                if S[j] != '?' and S[j] != x[j]:
                    S[j] = '?'
                G[j] = x[j] if S[j] == '?' else S[j]
        else:  # 反例
            # 只更新最一般概念描述G
            for j in range(len(x)):
                if S[j] != '?' and S[j] != x[j]:
                    G[j] = S[j]
        # 打印每次迭代的结果
        print(f'第{i+1}次迭代:S={S}, G={G}')
    # 最终得到的最具一般性的概念描述即为所求概念
    concept = G if G[0] != '∅' else S
    return concept
Salin selepas log masuk

Di atas adalah idea asas dan contoh aplikasi algoritma penyingkiran calon. Saya harap ia akan membantu semua orang memahami dan mempelajari penyingkiran calon algoritma.

Atas ialah kandungan terperinci Penjelasan terperinci tentang algoritma penyingkiran calon yang dilaksanakan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:163.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan