我從比賽中獲得了一些有趣的用戶數據。我知道各個運動員何時計劃完成一場比賽,我知道他們什麼時候完成了比賽(接近更多的東西)。目標是找出運動員何時遲到。我想爲每個運動員運行一個支持向量機,並繪製決策邊界。如何在pandas col中循環並運行並繪製scikit模型?
這裏是我做的:
import numpy as np
import pandas as pd
from sklearn import svm
from mlxtend.plotting import plot_decision_regions
import matplotlib.pyplot as plt
# Create arbitrary dataset for example
df = pd.DataFrame({'User': np.random.random_integers(low=1, high=4, size=50),
'Planned_End': np.random.uniform(low=-5, high=5, size=50),
'Actual_End': np.random.uniform(low=-1, high=1, size=50),
'Late': np.random.random_integers(low=0, high=2, size=50)}
)
# Fit Support Vector Machine Classifier
X = df[['Planned_End', 'Actual_End']]
y = df['Late']
clf = svm.SVC(decision_function_shape='ovo')
for i, y in df['User']:
clf.fit(X, y)
ax = plt.subplot()
fig = plot_decision_regions(X=X, y=y, clf=clf, legend=2)
plt.title(lab)
plt.show()
我得到以下錯誤:TypeError: 'numpy.int64' object is not iterable
- 那就是,我有點無法通過列循環。
我想它歸結爲numpy數據格式?我該如何解決這個問題?
謝謝!我來自一個略有不同的技術堆棧,只是使用了我所知道的語法並試用了它 - 顯然不成功。我認爲我首先使用'y'和''i'確實犯了一個錯誤。我只想穿過運動員 - 確實是'numpy.int64',併爲每個運動員運行clf。不知何故,我無法將其解決。還有什麼提示? – Rachel
希望我的編輯幫助。 – zipa
謝謝 - 這已經有所幫助了。但是,我實際上正試圖爲每位運動員單獨製作一個情節。也就是說,我試圖通過'df ['Athelte']循環併爲每個運動員(本例中爲四個)運行'clf()'和'plt.subplot()'。依賴變量仍然應該是'df ['Late']'因此'y'。 – Rachel