今天刚接触Anaconda就简单学习了个超级超级不要太简单的小程序,就是关于苹果橘子的分类。学习的时候,一开始我是这样写的:
>>> from sklearn import tree
>>> features=[[140,'smooth'],[130,'smooth'],[150,'bumpy'],[170,'bumpy']]
>>> labels=["apple","apple","orange","orange"]
>>> clf=tree.DecisionTreeClassifier()
>>> clf=clf.fit(features,labels)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "E:\Anaconda\lib\site-packages\sklearn\tree\tree.py", line 790, in fit
X_idx_sorted=X_idx_sorted)
File "E:\Anaconda\lib\site-packages\sklearn\tree\tree.py", line 116, in fit
X = check_array(X, dtype=DTYPE, accept_sparse="csc")
File "E:\Anaconda\lib\site-packages\sklearn\utils\validation.py", line 433, in check_array
array = np.array(array, dtype=dtype, order=order, copy=copy)
ValueError: could not convert string to float: 'smooth'
于是就报错了,所以我就用0.1进行了替换,变成了如下代码就可以了。
>>> from sklearn import tree
>>> features=[[140,1],[130,1],[150,0],[170,0]]
>>> labels=[0,0,1,1]
>>> clf=tree.DecisionTreeClassifier()#决策树分类器(空的规则盒子)
>>> clf=clf.fit(features,labels)#训练所用算法fit
>>> print clf.predict([[150,0]])
File "<stdin>", line 1
print clf.predict([[150,0]])
^
SyntaxError: invalid syntax
>>> print(clf.predict([[150,0]]))#预测
[1]
上边有个小错误,因为我忘了我的python是3.7,写错的那种写法是python2.7的写法。
具体为什么不能用字符串?是不是别的方式可以用string类型?
我还得再学习学习,因为对那些库以及库函数都不是很清楚呢,如果哪位大神看见了我这博客,可以评论告诉我,我还是小白,不能再小再白的小白。