【发布时间】:2021-02-04 03:01:50
【问题描述】:
我想一次计算不同的分类器并将结果传输到 Pandas 数据框。
# Lets create some test data
import pandas as pd
import numpy as np
import string
import random
integers = pd.DataFrame(np.random.randint(0,100,size=(50, 1)), columns=list('I'))
strings = pd.DataFrame([random.choice('ab') for _ in range(50)], columns=list('S'))
df2 = pd.concat([strings,integers], axis=1)
df2.head()
S I
0 a 5
1 a 31
2 b 84
3 a 79
4 b 92
# Train - Test
from sklearn.model_selection import train_test_split
X = df2[["I"]].values
y = df2["S"]
X_train, X_test, y_train, y_test = train_test_split(X, y)
#Load libraries
from sklearn import metrics
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier
from sklearn.linear_model import LogisticRegression
#Classifiers
classifiers = [
KNeighborsClassifier(30),
DecisionTreeClassifier(),
RandomForestClassifier(),
AdaBoostClassifier(),
LogisticRegression()]
n_range = list(range(1, 10))
RandomForestClf = []
data_frame = []
for n in n_range:
# name = clf.__class__.__name__
model = RandomForestClassifier(n_estimators=n)
scores = cross_val_score(model, X, y, cv=5, scoring="accuracy")
RandomForestClf.append(scores.mean())
data_frame = pd.DataFrame({"Random Forest": RandomForestClf})
我无法让各种分类器通过 for 循环。
如何设置 for 循环,以便运行每个分类器,然后将预测转移到 panda 数据帧?
我当前的 for 循环只有在代码中提到模型时才有效。
我是 Python 新手。
感谢您的帮助!
【问题讨论】:
标签: python pandas for-loop machine-learning