クラスごとに探索する
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 54/60。
種を見分ける手がかりとなる測定値はどれでしょうか?花びらの長さに沿って、種ごとに1列ずつ、すべての花を並べてみましょう:
ラベルでgroupbyを使うと、これらの平均値を計算できます。
df = iris.frame
means = df.groupby("target")["petal length (cm)"].mean()
print(means)これは次のように出力されます:
target
0 1.462
1 4.260
2 5.552
Name: petal length (cm), dtype: float64クラス同士が大きく離れているため、花弁の長さはクラスを分離します。モデルはこれを重視するでしょう。
比率は差の大きさを示します。means[2] / means[1]は約1.3です。1から離れているほど、その特徴によってこれら2つのクラスをよりよく区別できます。
チャレンジ
中級どの細胞の測定値から悪性サンプルを見分けられるでしょうか? load_breast_cancerでは、クラス0が悪性で、クラス1が良性です。スターターコードは、いくつかの特徴名をfeaturesに読み込みます。
- 各特徴について、悪性の平均値を良性の平均値で割り、
roundを使って小数点以下2桁に丸めて出力します。 - ループの後、比率が最大の特徴名を出力します。
特徴がworst radiusとworst textureの場合:
worst radius: malignant is 1.58 times benign
worst texture: malignant is 1.25 times benign
Best separator: worst radius自分で試してみよう
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer(as_frame=True)
# 比較する特徴量
n = int(input())
features = []
for i in range(n):
features.append(input())
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ