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)とすれば解決できる。

参考:https://yuta0306.github.io/logistic-with-l1