I want to use LogisticRegression
to classify. So, I use RandomizedSearchCV
to pick best C params in LogisticRegression
.
My question is: Why do best_params_
change every time I run this program? I assume that best_params_
should always stay the same.
Code as follows:
data = load_iris().data
target = load_iris().target
# DATA Split
TrainData , TestData ,TrainTarget , TestTarget = train_test_split(data,target,test_size=0.25,random_state=0)
assert len(TrainData)==len(TrainTarget)
Skf = StratifiedKFold(n_splits=5)
#Model
LR = LogisticRegression(C=10,multi_class='multinomial',penalty='l2',solver='sag',max_iter=10000,random_state=0)
#Params selection with Cross Validation
params = {'C':np.random.randint(1,10,10)}
RS = RandomizedSearchCV(LR,params,return_train_score=True,error_score=0,random_state=0)
RS.fit(TrainData,TrainTarget)
Result = pd.DataFrame(RS.cv_results_)
print RS.best_params_