質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

790閲覧

計算の効率化をしたい

nouken

総合スコア369

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/09/17 02:27

編集2018/09/17 02:55

機械学習の問題に取り組んでおり、特徴量エンジニアリングでの以下の計算の効率化をしたいのですが、なかなかいい方法が思いつきません。計算自体はできるのですが、かなり時間がかかってしまう状態です。

やろうとしていることは、もともとの特徴量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]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

opyon

2018/09/17 02:53 編集

trainで検索するとTensorFlow関連のページが出て機械学習とのことなので察しはつきますが、関連情報として環境などを明記すると回答が得られやすくなるかもしれませんね。
guest

回答2

0

ベストアンサー

train[['A', 'B', 'C']].idxmax(axis=1)で取得してからsklearnのLabelEncoder、OneHotEncoder等で(別のライブラリを使っているならそちらにあるもので構いません)one-hot表現にする。

投稿2018/09/17 05:17

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nouken

2018/09/17 05:25

idxmaxなるものが存在したのですね。ありがとう御座います!
guest

0

サンプルデータ推測

サンプルデータを推測で作ってみましたが、どのような元データからどのような結果を得たいのか、明記したほうが回答得られると思いました。

ちなみに期待通りに動作してるように見えるのは気のせいでしょうか?

投稿2018/09/17 03:29

編集2018/09/17 03:31
opyon

総合スコア1009

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nouken

2018/09/17 03:37

ご回答ありがとうございます。上にも書きましたように、欲しい動作はしていますが、より大きなデータセットに対して計算の時間がかかりすぎますので、より計算コストの低い方法はあるものか、と質問した次第でございます。
opyon

2018/09/17 03:40 編集

どのくらいの元データで、どのくらいの時間が掛かっていて、どのくらいまで高速化したい・・・ などの具体例が無いと回答しづらいと思いますよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問