Çok kollu bir banditte yakınsamayı değerlendirme
Çok kollu bandit probleminde stratejilerin performansını ve yakınsamasını değerlendirmek, ne kadar etkili olduklarını anlamak için kritiktir. Zaman içinde her kolun ne sıklıkta seçildiğini analiz ederek, öğrenme sürecini ve stratejinin en iyi kolu bulup ondan yararlanma becerisini çıkarabiliriz. Bu egzersizde, epsilon-greedy stratejisinin yakınsamasını değerlendirmek için her kolun seçim yüzdelerini iterasyonlar boyunca görselleştireceksin.
Her iterasyonda hangi kolun çekildiğini gösteren selected_arms dizisi senin için önceden yüklendi.
Bu egzersiz
Python ile Gymnasium'da Reinforcement Learning
kursunun bir parçasıdırEgzersiz talimatları
- Zaman içinde her banditin seçim yüzdesini izlemek için sıfırlardan oluşan, boyutları buna uygun bir
selections_percentagedizisi başlat. - Her bandit için iterasyonlar boyunca seçimlerin kümülatif toplamını hesaplayıp iterasyon sayısına bölerek zaman içindeki
selections_percentagedeğerlerini elde et. - Her bandit için kümülatif seçim yüzdelerini çizerek, iterasyonlar boyunca her birinin ne sıklıkla seçildiğini görselleştir.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Initialize the selection percentages with zeros
selections_percentage = ____
for i in range(n_iterations):
selections_percentage[i, selected_arms[i]] = 1
# Compute the cumulative selection percentages
selections_percentage = np.____(____, axis=____) / np.arange(1, ____).reshape(-1, 1)
for arm in range(n_bandits):
# Plot the cumulative selection percentage for each arm
plt.plot(____, label=f'Bandit #{arm+1}')
plt.xlabel('Iteration Number')
plt.ylabel('Percentage of Bandit Selections (%)')
plt.legend()
plt.show()
for i, prob in enumerate(true_bandit_probs, 1):
print(f"Bandit #{i} -> {prob:.2f}")