Ali*_*Ali 0 python numpy dataframe pandas scikit-learn
我正在尝试使用SVM,但是当我使用pandas数据帧时,我不知道如何适应模型.如果我的数据如下所示:
df = pd.DataFrame({"x": ['011', '100', '111'] , "y": [0,1,0]})
df.x.apply(lambda x: np.array(list(map(int,x))))
>>>df
x y
0 [0, 1, 1] 0
1 [1, 0, 0] 1
2 [1, 1, 1] 0
Run Code Online (Sandbox Code Playgroud)
如果我尝试以这种方式拟合模型:
clf = svm.SVC().fit(df.x, df.y)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ValueError: setting an array element with a sequence.
Run Code Online (Sandbox Code Playgroud)
使用此数据框适合SVM的正确方法是什么?
df = pd.DataFrame({"x": ['011', '100', '111'] , "y": [0,1,0]})
df.x = df.x.apply(lambda x: list(map(int,x)))
df
x y
0 [0, 1, 1] 0
1 [1, 0, 0] 1
2 [1, 1, 1] 0
Run Code Online (Sandbox Code Playgroud)
df.x是一列数组.这可能不是存储数据的最佳方式,而且sklearn理解它似乎并不是很好.这将是简单的一切转换成一个列表的列表,并通过该给SVC.试试这个:
x = df.x.tolist()
print(x)
[[0, 1, 1], [1, 0, 0], [1, 1, 1]]
SVC().fit(x, df.y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3531 次 |
| 最近记录: |