

機械学習でrandom stateを変更しながら、出力をしています。  
例えば、以下のプログラムで、random stateを0から20まで、全ての値を出力させるようなプログラムは可能でしょうか。  
現状では、手作業で0から20まで変更して、いちいちjupyter notebook上で出力しています。

[code]

    import numpy as np
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.model_selection import LeaveOneOut
    from sklearn.model_selection import cross_val_score
    
    forest=RandomForestClassifier(n_estimators=100,random_state=0)
    data = np.loadtxt('mh.csv', delimiter=',',skiprows=1,dtype=float)
    labels = data[:, 0:1]
    features = data[:, 1:]
    loo=LeaveOneOut() 
    scores = cross_val_score(forest, features, labels.ravel(), cv=loo) 
    
    print('Mean accuracy: {:.3f}'.format(scores.mean())) 
    
[/code]


CC BY-SA 4.0
2019-02-23T13:43:37.917
52973
2019-02-25T00:25:20.583
2019-02-25T00:25:20.583
3060
31804
question
python numpy
random stateを変えた値の出力の仕方


「ほぼ同じことを何回も繰り返す」というタスクなので、for文を使えばできます。しかも今回は「0から20まで変えながら繰り返す」という場合なので、単純にひとつの変数を0から20まで変化させながら繰り返すだけで良いです。

たとえば下のプログラムは0から20までの数を出力します。

[code]

    for i in range(0, 21):
        print(i)
    
[/code]

これと同じようにしつつfor文の中身を変えることで今回の問題は解決できます。

おそらく何かしらの資料からPythonのプログラムをコピー＆ペーストしつつ機械学習を学ばれている最中なのだと思います。より発展的なことがしたくなった場合Pythonというプログラミング言語自体をある程度理解しておかないと立ち行かなくなりますので、どれかひとつでもPythonのチュートリアルをこなしておくと今後ラクかと思います。


CC BY-SA 4.0
2019-02-24T13:22:19.180
52996
2019-02-24T13:22:19.180
19110
52973
answer