{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/dual-agent-reinforcement-learning-for","title":"Dual-Agent Reinforcement Learning for Automated Feature Generation","arxiv_id":"2505.12628","date":"2025-05-19","proceeding":null,"authors":["Wanfu Gao","Zengyao Man","Hanlin Pan","Kunpeng Liu"],"abstract":"Feature generation involves creating new features from raw data to capture complex relationships among the original features, improving model robustness and machine learning performance. Current methods using reinforcement learning for feature generation have made feature exploration more flexible and efficient. However, several challenges remain: first, during feature expansion, a large number of redundant features are generated. When removing them, current methods only retain the best features each round, neglecting those that perform poorly initially but could improve later. Second, the state representation used by current methods fails to fully capture complex feature relationships. Third, there are significant differences between discrete and continuous features in tabular data, requiring different operations for each type. To address these challenges, we propose a novel dual-agent reinforcement learning method for feature generation. Two agents are designed: the first generates new features, and the second determines whether they should be preserved. A self-attention mechanism enhances state representation, and diverse operations distinguish interactions between discrete and continuous features. The experimental results on multiple datasets demonstrate that the proposed method is effective. The code is available at https://github.com/extess0/DARL.","url_abs":"https://arxiv.org/abs/2505.12628v1","url_pdf":"https://arxiv.org/pdf/2505.12628v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"dual-agent-reinforcement-learning-for","repo_url":"https://github.com/extess0/darl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2505.12628","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.12628"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/extess0/DARL","reach":null}],"summary":{"ran":3,"ran_fixture":1,"ran_honours":1},"by_repo_kind":{"official":{"samples":5,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":5,"samples":[{"code_sha256_prefix":"651ef824108f1db2","entry":"Agent1","repo":"extess0/DARL","repo_kind":"official","path":"feature_generation/embedding_policy.py","file_url":"https://github.com/extess0/DARL/blob/HEAD/feature_generation/embedding_policy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"651ef824108f1db2"}},{"code_sha256_prefix":"5e0233489678853d","entry":"Attention","repo":"extess0/DARL","repo_kind":"official","path":"feature_generation/embedding_policy.py","file_url":"https://github.com/extess0/DARL/blob/HEAD/feature_generation/embedding_policy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5e0233489678853d"}},{"code_sha256_prefix":"c3f11ec60cd299d9","entry":"QNet_generation","repo":"extess0/DARL","repo_kind":"official","path":"feature_generation/embedding_policy.py","file_url":"https://github.com/extess0/DARL/blob/HEAD/feature_generation/embedding_policy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c3f11ec60cd299d9"}},{"code_sha256_prefix":"4e1854ae8e15b098","entry":"fanin_init","repo":"extess0/DARL","repo_kind":"official","path":"feature_generation/embedding_policy.py","file_url":"https://github.com/extess0/DARL/blob/HEAD/feature_generation/embedding_policy.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4e1854ae8e15b098"}},{"code_sha256_prefix":"e043b55fbca87069","entry":"get_pos_emb","repo":"extess0/DARL","repo_kind":"official","path":"feature_generation/embedding_policy.py","file_url":"https://github.com/extess0/DARL/blob/HEAD/feature_generation/embedding_policy.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e043b55fbca87069"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}