機械学習の問題に取り組んでおり、特徴量エンジニアリングでの以下の計算の効率化をしたいのですが、なかなかいい方法が思いつきません。計算自体はできるのですが、かなり時間がかかってしまう状態です。
やろうとしていることは、もともとの特徴量A、B、Cについて値を比較し、最大の値をもつ特徴量に1を与え、それ以外は0としたいです。
なお以下、trainはトレーニングデータで、pd.DataFrameです。
python
1 2for i in range(train.shape[0]): 3 max=np.max(train.loc[i, ['A', 'B', 'C']]) 4 if max==train.loc[i, 'A']: 5 train.loc[i,['A', 'B', 'C'] ]=[1, 0, 0] 6 continue 7 elif max==train.loc[i, 'B']: 8 train.loc[i,['A', 'B', 'C'] ]=[0, 1, 0] 9 continue 10 elif max==train.loc[i, 'C']: 11 train.loc[i,['A', 'B', 'C'] ]=[0, 0, 1]
trainで検索するとTensorFlow関連のページが出て機械学習とのことなので察しはつきますが、関連情報として環境などを明記すると回答が得られやすくなるかもしれませんね。
回答2件
あなたの回答
tips
プレビュー