作为Python的相对新手,我正在尝试使用sklearn RandomForestClassifier。yhat的操作指南中的一个示例如下:
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
import numpy as np
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['is_train'] = np.random.uniform(0, 1, len(df)) <= .75
df['species'] = pd.Factor(iris.target, iris.target_names)
df.head()
train, test = df[df['is_train']==True], df[df['is_train']==False]
features = df.columns[:4]
clf = RandomForestClassifier(n_jobs=2)
y, _ = pd.factorize(train['species']) # assignment I don't understand
clf.fit(train[features], y)
preds = iris.target_names[clf.predict(test[features])]
pd.crosstab(test['species'], preds, rownames=['actual'], colnames=['preds'])
可以解释一下y,_赋值的作用及其工作原理。没有显式使用它,但是如果忽略它,则会出现错误。
您将返回的元组分解为两个不同的值y
和_
。
_
是“我不再需要该值”的约定。
它基本上与以下内容相同:
y = pd.factorize(train['species'])[0]
除了该代码适用于至少包含1个元素的任何可索引返回值外,而您的代码明确需要返回值中的两个项目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句