pythonではじめる機械学習の勉強 In[41]からIn[45]について
LogisticRegressionをcancerデータに使ってみる。ここでC(大きいと正則化が弱まる)を色々と変えてみる。デフォルトのC=1では適合不足しているのでC=100に増やす。In[44]で様々なCに対しての重みの大きさをプロットする。
In[44]について
plt.xticks(range(cancer.data.shape[1]),cancer.feature_names,rotation=90)は第1引数はx軸のラベルで第2引数で第1引数のラベルを第2引数に置き換える。range(cancer.data.shape[1])でcancer.dataの列数(これは30個)をとり30まで出力するする。
cancer.feature_names(これは'mean radius' 'mean texture' 'mean perimeter'など)は特徴量でx軸のラベルをこの名前で置き換える。
rotation=90でx軸のラベルを90度回転。
In[45]
このコードをそのまま使うとSolver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.とエラーがでる。
lr_l1=LogisticRegression(C=C,penalty="l1").fit(X_train,y_train)をlr_l1=LogisticRegression(C=C,penalty="l1",solver='liblinear').fit(X_train,y_train)とすれば解決できる。