概述
《机器学习》课后题6.3
iris线性可分所以肯定正确率会分的很高
pybrain一直安装报错不清楚为什么,C4.5之前的还没写完,先继续往下写,欠着吧
python代码
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
from sklearn import metrics
from sklearn import svm
def create_data():
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['label'] = iris.target
df.columns = ['sepal length', 'sepal width', 'petal length', 'petal width', 'label']
data = np.array(df.iloc[:100, [0, 1, -1]])
for i in range(len(data)):
if data[i, -1] == 0:
data[i, -1] = -1
# print(data)
return data[:, :2], data[:, -1]
X, y = create_data()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)
plt.scatter(X[:50, 0], X[:50, 1], label='0')
plt.scatter(X[50:, 0], X[50:, 1], label='1')
plt.xlabel(load_iris().feature_names[0])
plt.ylabel(load_iris().feature_names[1])
plt.legend()
plt.show()
for kernel in ['linear', 'rbf']:
clf = svm.SVC(C=1000, kernel=kernel)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
accuracy = metrics.accuracy_score(y_test, y_pred)
print('accuracy of %s kernel SVM: %.3f' % (kernel, accuracy))
运行结果
accuracy of linear kernel SVM: 1.000
accuracy of rbf kernel SVM: 1.000
最后
以上就是秀丽大象为你收集整理的《机器学习》西瓜书课后题6.3《机器学习》课后题6.3的全部内容,希望文章能够帮你解决《机器学习》西瓜书课后题6.3《机器学习》课后题6.3所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复