Python ve SKLearn için oldukça yeni. Basit bir sınıflandırıcı yapmaya çalışıyorum ama bir sorunla karşılaşıyorum. Birkaç farklı öğreticiyi takip ediyorum ama .fit
yöntemini kullanmaya çalıştığımda bir hata alıyorum. Konsepte yeniyim ve belgeleri denedim ama anlamakta zorlandığımı, herhangi birisinin bana yardımcı olabileceğini ya da bana doğru yönde işaret edebileceğini buldum.Python Sınıflandırıcı Sklearn
Kod
def main():
setup_files()
imputer = Imputer()
#the training data minus id and type:
t_num_data = load_csv(training_set_file_path, range(1, 17))
t_num_data_imputed = imputer.fit_transform(t_num_data)
print(t_num_data_imputed)
#the training type column
t_type_col = load_csv(training_set_file_path, 17, dtype=np.dtype((str, 5)))
#the query data minus id and type:
q_data = load_csv(queries_file_path, range(1, 17))
#the query id column
q_id = load_csv(queries_file_path, 0, dtype=np.dtype((str, 10)))
#fit data above to DTC and predict import
model = tree.DecisionTreeClassifier(criterion='entropy')
model.fit_transform(t_num_data, t_type_col)
predictions = model.predict(q_data)
#output the predictions:
with open(solutions_file_path, 'w') as f:
for i in range(len(predictions)):
f.write("{},{}\n".format(q_id[i], predictions[i]))
#fit data above to DTC and predict import
model = tree.DecisionTreeClassifier(criterion='entropy')
model.fit(t_num_data, t_type_col)
predictions = model.predict(q_data)
#output the predictions:
with open(solutions_file_path, 'w') as f:
for i in range(len(predictions)):
f.write("{},{}\n".format(q_id[i], predictions[i]))
doğan gibi değerler d_type için kapsama alanı dışında olmasıdır
Hata
Traceback (most recent call last):
File "/Users/Rory/Desktop/classifier.py", line 71, in <module>
main()
File "/Users/Rory/Desktop/classifier.py", line 60, in main
model.fit_transform(t_num_data, t_type_col)
File "/Users/Rory/anaconda/lib/python2.7/site-packages/sklearn/base.py", line 458, in fit_transform
return self.fit(X, y, **fit_params).transform(X)
File "/Users/Rory/anaconda/lib/python2.7/site-packages/sklearn/tree/tree.py", line 154, in fit
X = check_array(X, dtype=DTYPE, accept_sparse="csc")
File "/Users/Rory/anaconda/lib/python2.7/site-packages/sklearn/utils/validation.py", line 398, in check_array
_assert_all_finite(array)
File "/Users/Rory/anaconda/lib/python2.7/site-packages/sklearn/utils/validation.py", line 54, in _assert_all_finite
" or a value too large for %r." % X.dtype)
ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
Hata herşeyi açıklıyor. 'T_num_data'nız inf veya nan değerlerine sahiptir. Min/max –
'u yazdırmayı deneyin ve bunun için basit bir düzeltme var mı, yoksa veride mi var? – JJSmith
@imaluengo En fazla ve en az yazdırdığımda hem – JJSmith