给定特征集作为字典,如何实现交叉验证和随机森林分类器?
How to implement Cross Validation and Random Forest Classifier given feature sets as dictionaries?
我已经将 featuresets
作为包含以下形式元素的字典:
({0: 0.48447204968944096,
1: 0.035093167701863354,
2: 0.07453416149068323,
3: 0.046583850931677016,
4: 0.0,
5: 0.09316770186335403,
...
162: 1,
163: 1.0}, 'male')
当我尝试从 sklearn 库中实现 cross_val_score
或 cross_val_predict
时,结果总是显示一些错误
"float values cannot be dict".
有人可以帮我在 Python 中使用线性 SVC 和随机森林分类器实现交叉验证吗?
我以前试过这个:
train_set, test_set = featuresets[1:1628], featuresets[1630:3257]
np.asarray(train_set)
np.asarray(test_set)
clf = SVC(kernel='linear', C=5)
predicted = cross_val_predict(clf, train_set, test_set, cv=10)
metrics.accuracy_score(test_set, predicted)
此外,我不知道如何在此处实施 kfold 交叉验证。
让我们先导入必要的模块:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
您必须像这样创建一个随机森林分类器的实例:
clf = RandomForestClassifier()
然后你需要加载featuresets
(我没有这个数据所以我无法测试我的代码)并将你的分类变量转换为数字变量,例如通过字典:
featuresets = # your code here
gender = {'male': 0, 'female': 1}
下一步是将特征和标签存储为 NumPy 数组:
X = np.asarray([[i[1] for i in sorted(d.items())] for d, _ in featuresets])
y = np.asarray([gender[s] for _, s in featuresets])
现在您已准备好通过拆分数据、拟合模型并连续 10 次计算分数(每次拆分不同)来估计随机森林分类器在您的数据集上的准确性:
scores = cross_val_score(clf, X, y, cv=10)
print('Scores =', scores)
如果您运行上面的代码片段,您应该得到一个包含 10 个乐谱的列表。
我已经将 featuresets
作为包含以下形式元素的字典:
({0: 0.48447204968944096,
1: 0.035093167701863354,
2: 0.07453416149068323,
3: 0.046583850931677016,
4: 0.0,
5: 0.09316770186335403,
...
162: 1,
163: 1.0}, 'male')
当我尝试从 sklearn 库中实现 cross_val_score
或 cross_val_predict
时,结果总是显示一些错误
"float values cannot be dict".
有人可以帮我在 Python 中使用线性 SVC 和随机森林分类器实现交叉验证吗?
我以前试过这个:
train_set, test_set = featuresets[1:1628], featuresets[1630:3257]
np.asarray(train_set)
np.asarray(test_set)
clf = SVC(kernel='linear', C=5)
predicted = cross_val_predict(clf, train_set, test_set, cv=10)
metrics.accuracy_score(test_set, predicted)
此外,我不知道如何在此处实施 kfold 交叉验证。
让我们先导入必要的模块:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
您必须像这样创建一个随机森林分类器的实例:
clf = RandomForestClassifier()
然后你需要加载featuresets
(我没有这个数据所以我无法测试我的代码)并将你的分类变量转换为数字变量,例如通过字典:
featuresets = # your code here
gender = {'male': 0, 'female': 1}
下一步是将特征和标签存储为 NumPy 数组:
X = np.asarray([[i[1] for i in sorted(d.items())] for d, _ in featuresets])
y = np.asarray([gender[s] for _, s in featuresets])
现在您已准备好通过拆分数据、拟合模型并连续 10 次计算分数(每次拆分不同)来估计随机森林分类器在您的数据集上的准确性:
scores = cross_val_score(clf, X, y, cv=10)
print('Scores =', scores)
如果您运行上面的代码片段,您应该得到一个包含 10 个乐谱的列表。