Scikit-learn: DecisionTreeClassifier ์•Œ ์ˆ˜ ์—†๋Š” ๋ ˆ์ด๋ธ” ์œ ํ˜•: '์—ฐ์† ๋‹ค์ค‘ ์ถœ๋ ฅ'

์— ๋งŒ๋“  2016๋…„ 10์›” 31์ผ  ยท  18์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: scikit-learn/scikit-learn

์„ค๋ช…


DecisionTreeClassifier๊ฐ€ unknown label type: 'continuous-multioutput' ์™€ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. csv.reader, pandas.read_csv ๋ฐ ์ค„ ๋‹จ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„๊ณผ ๊ฐ™์€ ๊ธฐํƒ€ ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์—ฌ csv ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

์žฌํ˜„ํ•  ๋‹จ๊ณ„/์ฝ”๋“œ

from sklearn import tree
feature_df = pd.read_csv(os.path.join(_PATH, 'features.txt'))
target_df = pd.read_csv(os.path.join(_PATH, 'target.txt'))
feature_df = feature_df._get_numeric_data()
target_df = target_df._get_numeric_data()
feature_df = feature_df.fillna(0)
target_df = target_df.fillna(0)
clf = tree.DecisionTreeClassifier()
clf_o = clf.fit(feature_df, target_df)

๊ธฐ๋Šฅ.txt
๋Œ€์ƒ.txt

์˜ˆ์ƒ ๊ฒฐ๊ณผ


์˜ค๋ฅ˜ ๋ฐœ์ƒ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ๊ฐ€์ •์„ ๋”ฐ๋ฅด์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ

Traceback (most recent call last):
  File "D:\Piotr\Documents\uni\bap\BAPFingerprintLocalisation\main.py", line 19,
 in <module>
    decision_tree.treeClassification()
  File "D:\Piotr\Documents\uni\bap\BAPFingerprintLocalisation\code\decision_tree
.py", line 56, in treeClassification
    clf_o = clf.fit(feature_df, target_df)
  File "C:\Python35\lib\site-packages\sklearn\tree\tree.py", line 182, in fit
    check_classification_targets(y)
  File "C:\Python35\lib\site-packages\sklearn\utils\multiclass.py", line 172, in
 check_classification_targets
    raise ValueError("Unknown label type: %r" % y_type)
ValueError: Unknown label type: 'continuous-multioutput'

๋ฒ„์ „

Windows-10-10.0.14393-SP0
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)]
NumPy 1.11.0
SciPy 0.17.1
Scikit-Learn 0.18

์—…๋ฐ์ดํŠธ:

๋‚˜๋Š” ์ผ์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€์ƒ ๋ณ€์ˆ˜์˜ ์ˆ˜๋ฅผ ํ•˜๋‚˜๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

clf_o = clf.fit(feature_df, target_df.ix[:,1])

์ถœ๋ ฅ: Unknown label type: 'continuous'

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

DecisionTreeRegressor ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  18 ๋Œ“๊ธ€

DecisionTreeRegressor ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋ฌธ์„œ์—๋Š” ๋ถ„๋ฅ˜๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค์˜ ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋„ˆ๋ฌด ๋งŽ์€ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— '๋ ˆ์ด๋ธ”'๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์ด ์–ธ๊ธ‰๋˜์–ด ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ์žŠ์–ด๋ฒ„๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ์„ธํŠธ ์ „๋‹ฌ ๋ฐฉ๋ฒ•์— ๊ฐ„์„ญํ•  ์ •๋„๋กœ ํ˜ผ๋ž€์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์œผ๋ฉฐ ๋‹ค์‹œ ์—ด์–ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ฅ˜ ๋Œ€์ƒ์€ ์ •์ˆ˜ ๋˜๋Š” ๋ฌธ์ž์—ด๋กœ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Pandas์— ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ฝ๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜๋Š” DecisionTreeRegressor ์‚ฌ์šฉ

๊ทธ๊ฑด ๋‚ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์•ผ

๋‚ด ๋ฌธ์ œ์˜ '์˜ˆ์ƒ ๊ฒฐ๊ณผ' ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋” ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์€ ์˜ณ์•˜์ง€๋งŒ fit ์— ๋Œ€ํ•œ ๋ฌธ์„œ์—๋Š” "๋ถ„๋ฅ˜์˜ ํด๋ž˜์Šค ๋ ˆ์ด๋ธ”"์ด๋ผ๊ณ  ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. y ๋ถ„๋ฅ˜์— ๋Œ€ํ•œ ์˜ˆ์ƒ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ๋ฌธ์„œํ™”ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๊ณผ float ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ„๋ฅ˜์ž์— y ๋กœ ์ „๋‹ฌ๋  ๋•Œ ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋” ๋ช…ํ™•ํ•œ ๋ฌธ์ œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค.

DecisionTreeClassifier ํด๋ž˜์Šค์— ๋งž๋Š” ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ y๋ฅผ ๋ฌธ์„œํ™”ํ•˜๋Š” ๋ฌธ์„œ์˜ ์ „์ฒด ์„น์…˜์„ ์ธ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋Œ€์ƒ ๊ฐ’(๋ถ„๋ฅ˜์˜ ํด๋ž˜์Šค ๋ ˆ์ด๋ธ”, ํšŒ๊ท€์˜ ์‹ค์ˆ˜). ํšŒ๊ท€์˜ ๊ฒฝ์šฐ ์ตœ๋Œ€ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด dtype=np.float64 ๋ฐ order='C'๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ ์ˆ˜์—…์— ์ƒํ•œ์„ ์ด ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์—ฐ์†์ด๋ผ๋Š” ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋œ ๋Œ€์ƒ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํšŒ๊ท€ ์œ ํ˜• ๋Œ€์ƒ ๋ณ€์ˆ˜๋กœ ๊ฐ„์ฃผ๋˜๋ ค๋ฉด ๋ช‡ ๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ํšŒ๊ท€์— ๋Œ€ํ•ด ๋งํ•˜๋ฉด DecisionTreeClassifier๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ๊ท€๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์™œ ์•ˆ ๋ผ? ๋“ฑ...

๊ท€ํ•˜์˜ ์ด์ „ ์˜๊ฒฌ:

๋ถ„๋ฅ˜ ๋Œ€์ƒ์€ ์ •์ˆ˜ ๋˜๋Š” ๋ฌธ์ž์—ด๋กœ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Pandas์— ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ฝ๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ํด๋ž˜์Šค๊ฐ€ float๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋”•์…”๋„ˆ๋ฆฌ๋กœ? ๊ธฐ์šธ๊ธฐ? ํŠœํ”Œ? ๋กฑ? ๋”๋ธ”์Šค? ๋ฐ”์ดํŠธ? ๋‚˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์ˆ˜๋‚˜ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋…ผ๋ฆฌ์ ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ๋“ค์€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค์€ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ์ œํ•œ ์‚ฌํ•ญ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ทธ๋ฆฌ๊ณ  ์ƒˆ ํ‹ฐ์ผ“์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์—ฌ๊ธฐ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ๊ฝค ๋งŽ์€ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆด๊ธฐ ๋•Œ๋ฌธ์— ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋˜‘๊ฐ™์€ ๊ฒƒ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ ํ‹ฐ์ผ“์„ ๋งŒ๋“œ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ˆ˜์—…์˜ ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฌธ์ œ ์„ค๋ช…์ด ์ง‘์ค‘๋˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ œ๊ธฐ๋œ ๊ท€ํ•˜์˜ ์šฐ๋ ค ์‚ฌํ•ญ
์‚ฌ์šฉ์ƒ์˜ ๋ฌธ์ œ๊ฐ€ ๋” ํฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ œ๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ์— ๋Œ€ํ•ด ์ €๋ฅผ ๊ท€์ฐฎ๊ฒŒ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ์•„๋‹ˆ๋‹ค.
๋‚˜๋Š” ์ฒ˜๋ฆฌํ•˜๊ณ ์žˆ๋‹ค.

2016๋…„ 11์›” 2์ผ 00:24 Piotr Kamoda [email protected] ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜ y๋ฅผ ๋ฌธ์„œํ™”ํ•˜๋Š” ๋ฌธ์„œ์˜ ์ „์ฒด ์„น์…˜์„ ์ธ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
DecisionTreeClassifier ํด๋ž˜์Šค์— ๋งž๋Š” ํ•จ์ˆ˜

๋Œ€์ƒ ๊ฐ’(๋ถ„๋ฅ˜์˜ ํด๋ž˜์Šค ๋ ˆ์ด๋ธ”,
ํšŒ๊ท€). ํšŒ๊ท€์˜ ๊ฒฝ์šฐ dtype=np.float64 ๋ฐ order='C'๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์ตœ๋Œ€ ํšจ์œจ.

๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ ์ˆ˜์—…์— ์ƒํ•œ์„ ์ด ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋Œ€์ƒ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ
์—ฐ์† ํ‘œ์‹œ? ๊ณ ๋ คํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋Š”์ง€
ํšŒ๊ท€ ์œ ํ˜• ๋Œ€์ƒ ๋ณ€์ˆ˜? ๊ทธ๊ฒƒ์ด ํšŒ๊ท€์— ๋Œ€ํ•ด ๋งํ•œ๋‹ค๋ฉด, ๋‚˜๋Š” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
DecisionTreeClassifier๋ฅผ ์‚ฌ์šฉํ•œ ํšŒ๊ท€? ์™œ ์•ˆ ๋ผ? ๋“ฑ...

๊ทธ๋ฆฌ๊ณ  ์ƒˆ ํ‹ฐ์ผ“์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์šฐ๋ฆฌ๋Š” ๊ฝค ๋งŽ์€ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ ์–˜๊ธฐํ•ด? ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋˜‘๊ฐ™์€ ๊ฒƒ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ ํ‹ฐ์ผ“์„ ๋งŒ๋“œ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

โ€”
์—ด๊ธฐ/๋‹ซ๊ธฐ ์ƒํƒœ๋ฅผ ์ˆ˜์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/scikit-learn/scikit-learn/issues/7801#issuecomment -257565248,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAEz63zNA0Qc4lzgHttXx-4VFkJFwFaDks5q5z16gaJpZM4KlSFw
.

์˜ค๋Š˜ ํ•ด๊ฒฐํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋‹จ์ง€ ํŠธ๋ฆฌ ๋ถ„๋ฅ˜๊ธฐ ๋ฐ ํšŒ๊ท€์ž์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์˜ค๋ฅ˜ ์„ค๋ช… ๋ฐ ์ž˜๋ชป๋œ ๋ฌธ์„œ ๋ฌธ์ œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ž‘์—…์œผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์˜ ๊ฒฝ์šฐ "์ง€์›๋˜์ง€ ์•Š๋Š” ์ถœ๋ ฅ ์œ ํ˜•: '์—ฐ์† ๋‹ค์ค‘ ์ถœ๋ ฅ'"์ด ๋” ๋‚ซ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด _์ง„์งœ_ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋…์ŠคํŠธ๋ง์— ๋Œ€ํ•ด์„œ๋Š” #7809๋„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๊ฒŒ ๋‚ซ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์™œ ๊ทธ๋Œ€๋กœ ์ด๋ฆ„์„ ๋ถ™์ด์ง€ ์•Š๋Š”์ง€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธํ—Œ์—์„œ๋Š” ์ฃผ๋กœ 'Target' ๋ณ€์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ถœ๋ ฅ์ด ํ•จ์ˆ˜ ์ถœ๋ ฅ์œผ๋กœ ์˜ค์ธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 'check_classification_targets' ํ•จ์ˆ˜์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฏ€๋กœ '๋Œ€์ƒ' ๋ณ€์ˆ˜๋ผ๊ณ  ๋งํ•˜๋ฉด์„œ๋„ ์—ฌ์ „ํžˆ '๋ ˆ์ด๋ธ”' ๋˜๋Š” '์ถœ๋ ฅ'์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ €๋Š” scikit-learn ํšŒ์›์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋งˆ์Œ๋Œ€๋กœ ํ•˜์‹œ๋ฉด ๋˜์ง€๋งŒ doscstring ๋ฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— 'Target variable'์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ ๋ฐ์ดํ„ฐ(๋˜๋Š” ๋Œ€์ƒ)๊ฐ€ ๋”ฐ๋ผ์•ผ ํ•˜๋Š” ๊ทœ์น™์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ์งง์€ ๋ฌธ์žฅ - '๋Œ€์ƒ ๋ณ€์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ y)๋Š” int ๋˜๋Š” str์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค'.

์ƒˆ ์„น์…˜(45cb11d / #7519)๊ณผ ํ•จ๊ป˜ ์–ธ๊ธ‰ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠœํ† ๋ฆฌ์–ผ์˜ ๋‹ค์ค‘ ํด๋ž˜์Šค ๋ฐ ๋‹ค์ค‘ ๋ ˆ์ด๋ธ” ํ”ผํŒ…์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์ด ๋ชจ๋“  ๊ฒƒ์ด
๋ฐ์ดํ„ฐ ํ‘œํ˜„ ๊ทœ์น™์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ ์„น์…˜์— ์†ํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ํ‘œ์ค€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž…๋ ฅ/์ถœ๋ ฅ ํ˜•์‹ ์„ค๋ช…...?

2016๋…„ 11์›” 2์ผ 20์‹œ 56๋ถ„์— Piotr Kamoda [email protected] ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋‚ซ๋‹ค. ํ•˜์ง€๋งŒ ์•„์ง๋„ ๋‚˜๋Š” ๋‹น์‹ ์ด ์™œ ๊ทธ๊ฒƒ์„ ๊ทธ๋ ‡๊ฒŒ ๋ช…๋ช…ํ•˜์ง€ ์•Š๋Š”์ง€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.
์ด๋‹ค. ๋ฌธํ—Œ์€ ๋Œ€๋ถ€๋ถ„ '๋ชฉํ‘œ' ๋ณ€์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  ์ถœ๋ ฅ์€
ํ•จ์ˆ˜ ์ถœ๋ ฅ์œผ๋กœ ์˜ค์ธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
'check_classification_targets', ๊ทธ๋ž˜์„œ 'target' ๋ณ€์ˆ˜๋ผ๊ณ  ํ•ด๋„,
์—ฌ์ „ํžˆ '๋ ˆ์ด๋ธ”' ๋˜๋Š” '์ถœ๋ ฅ'์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํšŒ์›์ด ์•„๋‹ˆ๋‹ค
scikit-learn ํšŒ์›์ด๋ฏ€๋กœ ์›ํ•˜๋Š” ๋Œ€๋กœ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
doscstring ๋ฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— '๋Œ€์ƒ ๋ณ€์ˆ˜'๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋‹น์‹ ์—๊ฒŒ ๋ฌป์Šต๋‹ˆ๋‹ค.
์ž…๋ ฅ ๋ฐ์ดํ„ฐ(๋˜๋Š” ๋Œ€์ƒ)๊ฐ€ ๋”ฐ๋ผ์•ผ ํ•˜๋Š” ๊ทœ์น™์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ใ…
์งง์€ ๋ฌธ์žฅ - '๋Œ€์ƒ ๋ณ€์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ y)๋Š” int ๋˜๋Š” str์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค'.

โ€”
์—ด๊ธฐ/๋‹ซ๊ธฐ ์ƒํƒœ๋ฅผ ์ˆ˜์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/scikit-learn/scikit-learn/issues/7801#issuecomment -257820087,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAEz68AqYGWrP1C-BinLXGGHNt0VtV_qks5q6F5rgaJpZM4KlSFw
.

๋‚˜๋Š” ๋ฌธ์„œ๋ฅผ ์Šค์บ”ํ–ˆ๊ณ  ๊ทธ๋Ÿฌํ•œ ๊ทœ์น™์„ ์–ธ๊ธ‰ํ•˜๊ธฐ์— ์ข‹์€ ์žฅ์†Œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋„ˆ๋ฌด ๋‚œ๋…ํ™”ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด ํ•ด๋‹น ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ์— ๋„ฃ๋Š” ๊ฒƒ๋„ ๋‚˜์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธ€์Ž„์š”, ์ตœ์ข… ํ•ด๊ฒฐ์ฑ…(๋งŒ์•ฝ ์žˆ๋‹ค๋ฉด)์€ ๋‹น์‹ ์ด ์›ํ•˜๋Š” ๋Œ€๋กœ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ๊ทธ ์•„์ด๋””์–ด๊ฐ€ ๊ดœ์ฐฎ์•„ ๋ณด์ธ๋‹ค๋Š” ๋ง์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹ ์€ ๋‹น์‹ ์˜ ๊ด€์Šต์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๋ญ”๊ฐ€๋ฅผ ํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

'๋Œ€์ƒ ๋ณ€์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ y)๋Š” int ๋˜๋Š” str์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค'. ๋‹ค์ค‘ ๋ ˆ์ด๋ธ” ๋ฐ ๋‹ค์ค‘ ์ถœ๋ ฅ ๋‹ค์ค‘ ๋Œ€์ƒ์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ณ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ float๊ฐ€ ์•„๋‹Œ ์ž„์˜์˜ ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค ๋ ˆ์ด๋ธ”๋กœ ์ง€์›๋˜๋ฉฐ ์ •์ˆ˜๋‚˜ ๋ฌธ์ž์—ด์ผ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

training_data_X, training_scores_Y๋ฅผ ๋ฉ”์†Œ๋“œ์— ๋งž๊ฒŒ ์ž…๋ ฅํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋ ˆ์ด๋ธ”์„ ๋ณ€ํ™˜ํ•˜๊ณ  ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค

sklearn ๊ฐ€์ ธ์˜ค๊ธฐ ์ „์ฒ˜๋ฆฌ์—์„œ
sklearn ๊ฐ€์ ธ์˜ค๊ธฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ
lab_enc = ์ „์ฒ˜๋ฆฌ.LabelEncoder()
y_train = lab_enc.fit_transform(y_train)
์ธ์‡„(y_train)
์ธ์‡„(utils.multiclass.type_of_target(y_train))
print(utils.multiclass.type_of_target(y_train.astype('int')))
์ธ์‡„(utils.multiclass.type_of_target(y_train))

์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ์ธ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋‚˜์š”?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰