监督学习
KNN (k-nearest neighbors)
- KNN 是用 k 个最近邻的训练数据集来寻找未知对象分类的一种算法
from sklearn import neighbors
classifier = neighbors.KNeighborsClassifier(num_neighbors, weights='distance')
classifier.fit(X, y)
test_datapoint = [4.5, 3.6]
dist, indices = classifier.kneighbors([test_datapoint])
knn_regressor = neighbors.KNeighborsRegressor(n_neighbors, weights='distance')
y_values = knn_regressor.fit(X, y).predict(x_values)
pdf在线免费转word文档 https://orcc.online/pdf
线性回归
- 优点: 简单、速度快
- 缺点: 普通线性回归对异常值敏感,会破坏整个模型, 可以使用岭回归的方法优化
- 缺点: 拟合准确度相对不高
- 回归是估计输入数据与连续值输出数据之间关系的过程
- 线性回归的目标是提取输入变量与输出变量的关联线性模型
- 普通最小二乘法(Ordinary Least Squares,OLS): 要求实际输出与线性方程, 预测的输出的残差平方和(sum of squares of differences)最小化
import sys
import numpy as np
from sklearn import linear_model
import matplotlib.pyplot as plt
X = [1,2,3,4,5,6,7,8,9,10]
y = [22,22,23,24,25,27,27,30,29,30]
num_training = int(0.8 * len(X))
num_test = len(X) - num_training
X_train = np.array(X[:num_training]).reshape((num_training,1))
y_train = np.array(y[:num_training])
X_test = np.array(X[num_training:]).reshape((num_test,1))
y_test = np.array(y[num_training:])
linear_regressor = linear_model.LinearRegression()
linear_regressor.fit(X_train, y_train)
y_test_pred = linear_regressor.predict(X_test)
print('测试数据集的预测结果:',y_test_pred)
plt.figure()
plt.scatter(X_test, y_test, color='green')
plt.plot(X_test, y_test_pred, color='black', linewidth=4)
plt.title('Training data')
plt.show()
岭回归
- 岭回归是一种线性回归模型, 它通过对数据进行截距处理, 使得回归系数的绝对值不超过给定阈值
- 岭回归的优点是可以减小过拟合的风险, 并且可以处理异常值
- 岭回归的缺点是它对数据进行了截距处理
ridge_regressor = linear_model.Ridge(alpha=0.8, fit_intercept=True, max_iter=100)
IT免费在线工具网 https://orcc.online