用图片显示,我最近练习机器学习算法出现的错误。
第一个错误(逻辑回归算法):
源码
出现错误(如下图所示):
**解决方法:**我忘记写在写 zip
,改正之后的代码如下:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
samples=[100,300,600,800,1000,1500]
accuracy_s=[]
for i in samples:
x, y = make_moons(i, noise = 0.3)
x_train,x_test,y_train,y_test=train_test_split(x, y, test_size=0.4)
LR=LogisticRegression()
LR.fit(x_train,y_train)
accuracy_s.append(LR.score(x_test,y_test))
plt.figure()
plt.plot(samples,accuracy_s,ls='--',label='vary line')
plt.xlabel('samples')
plt.ylabel('score')
for a,b in zip(samples,accuracy_s):
plt.text(a,b,'(%.0f,%.1f)'%(a,b))
plt.legend(loc='upper left')
plt.show()
效果图如下:
第二个错误(支持向量机算法):
源码(核心代码):
出现错误(如下图所示):
**解决方案:**支持向量机中SVC
与 SVR
这两个模型器参数不同,不可以混淆,一定要注意。SVC
改正后源码(如下):
model = svm.SVC(C=1.0, kernel='linear',gamma=5)
model.fit(x,y)
w = model.coef_ #系数
b = model.intercept_ #截距
xp = np.linspace(np.min(x[:, 0]), np.max(x[:, 0]), 100)
yp = -(w[0, 0] * xp + b) / w[0, 1]