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) 优点: 简单、速度快 缺点: 普通线性回归对异常值敏感,会破坏整个模型, 可以使用岭回归的方法优化 缺点: 拟合准确度相对不高 回归是估计输入数据与连续值输出数据之间关系的过程 线性回归的目标是提取输入变量与输出变量的关联线性模型 普通最小二乘法(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 )