আমার অত্যন্ত ভারসাম্যহীন ডেটা সহ শ্রেণিবিন্যাসের সমস্যা রয়েছে। আমি পড়েছি যে ওভার ও আন্ডার স্যাম্পলিংয়ের পাশাপাশি আন্ডারপ্রেডেড শ্রেণিবদ্ধ আউটপুটগুলির জন্য ব্যয় পরিবর্তন করা আরও ভাল ফিটিংয়ের দিকে নিয়ে যাবে। এটি করার আগে টেনসরফ্লো প্রতিটি ইনপুটকে সংখ্যাগরিষ্ঠ গোষ্ঠী হিসাবে শ্রেণীবদ্ধ করে (এবং 90% এর বেশি নির্ভুলতা অর্জন করত, যেমনটি অর্থহীন)।
আমি লক্ষ্য করেছি যে প্রতিটি গ্রুপের বিপরীত শতাংশের লগ আমি চেষ্টা করেছি এমন সেরা গুণক তৈরি করেছে। ব্যয় কার্যকারিতা জন্য আরও মানক হেরফের আছে? এটি কি সঠিকভাবে প্রয়োগ করা হয়েছে?
from collections import Counter
counts = Counter(category_train)
weightsArray =[]
for i in range(n_classes):
weightsArray.append(math.log(category_train.shape[0]/max(counts[i],1))+1)
class_weight = tf.constant(weightsArray)
weighted_logits = tf.mul(pred, class_weight)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(weighted_logits, y))
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)