python3 学习机器学习api

使用两种k近邻回归模型 分别是 平均k近邻回归 和 距离加权k近邻回归 进行预测

git: https://github.com/linyi0604/MachineLearning

代码:

 from sklearn.datasets import load_boston
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsRegressor
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error
import numpy as np # 1 准备数据
# 读取波士顿地区房价信息
boston = load_boston()
# 查看数据描述
# print(boston.DESCR) # 共506条波士顿地区房价信息,每条13项数值特征描述和目标房价
# 查看数据的差异情况
# print("最大房价:", np.max(boston.target)) # 50
# print("最小房价:",np.min(boston.target)) # 5
# print("平均房价:", np.mean(boston.target)) # 22.532806324110677 x = boston.data
y = boston.target # 2 分割训练数据和测试数据
# 随机采样25%作为测试 75%作为训练
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=33) # 3 训练数据和测试数据进行标准化处理
ss_x = StandardScaler()
x_train = ss_x.fit_transform(x_train)
x_test = ss_x.transform(x_test) ss_y = StandardScaler()
y_train = ss_y.fit_transform(y_train.reshape(-1, 1))
y_test = ss_y.transform(y_test.reshape(-1, 1)) # 4 两种k近邻回归行学习和预测
# 初始化k近邻回归模型 使用平均回归进行预测
uni_knr = KNeighborsRegressor(weights="uniform")
# 训练
uni_knr.fit(x_train, y_train)
# 预测 保存预测结果
uni_knr_y_predict = uni_knr.predict(x_test) # 多初始化k近邻回归模型 使用距离加权回归
dis_knr = KNeighborsRegressor(weights="distance")
# 训练
dis_knr.fit(x_train, y_train)
# 预测 保存预测结果
dis_knr_y_predict = dis_knr.predict(x_test) # 5 模型评估
# 平均k近邻回归 模型评估
print("平均k近邻回归的默认评估值为:", uni_knr.score(x_test, y_test))
print("平均k近邻回归的R_squared值为:", r2_score(y_test, uni_knr_y_predict))
print("平均k近邻回归的均方误差为:", mean_squared_error(ss_y.inverse_transform(y_test),
ss_y.inverse_transform(uni_knr_y_predict)))
print("平均k近邻回归 的平均绝对误差为:", mean_absolute_error(ss_y.inverse_transform(y_test),
ss_y.inverse_transform(uni_knr_y_predict)))
# 距离加权k近邻回归 模型评估
print("距离加权k近邻回归的默认评估值为:", dis_knr.score(x_test, y_test))
print("距离加权k近邻回归的R_squared值为:", r2_score(y_test, dis_knr_y_predict))
print("距离加权k近邻回归的均方误差为:", mean_squared_error(ss_y.inverse_transform(y_test),
ss_y.inverse_transform(dis_knr_y_predict)))
print("距离加权k近邻回归的平均绝对误差为:", mean_absolute_error(ss_y.inverse_transform(y_test),
ss_y.inverse_transform(dis_knr_y_predict))) '''
平均k近邻回归的默认评估值为: 0.6903454564606561
平均k近邻回归的R_squared值为: 0.6903454564606561
平均k近邻回归的均方误差为: 24.01101417322835
平均k近邻回归 的平均绝对误差为: 2.9680314960629928
距离加权k近邻回归的默认评估值为: 0.7197589970156353
距离加权k近邻回归的R_squared值为: 0.7197589970156353
距离加权k近邻回归的均方误差为: 21.730250160926044
距离加权k近邻回归的平均绝对误差为: 2.8050568785108005
'''

最新文章

  1. jquery1.7.2的源码分析(二)
  2. vim保存文件时,生成.un~文件
  3. 针对Asp.net MVC SEO的几点建议
  4. 【翻译】利用Qt设计师窗体在运行时创建用户界面(Creating a user interface from a Qt Designer form at run-time)
  5. html5 方框内的小球
  6. R提高篇(五): 描述性统计分析
  7. 学习笔记:shared_ptr陷阱
  8. node.js EventEmitter发送和接收事件
  9. Monitor vs WaitHandle
  10. 杭州电 3711 Binary Number
  11. groovy hello world
  12. Wireshark网络端点和会话
  13. Spring mvc 原理浅析
  14. Lightscape
  15. Android RadioGroup中设置默认选中RadioButton 后,选中两个的问题 解决方法
  16. Linux命令之查看文件夹、文件数量及其所占磁盘空间
  17. mapper.xml文件,sql语句参数为list
  18. b2b b2c o2o电子商务微服务云平台
  19. 通过ZwQuerySystemInformation获取EPROCESS
  20. requestNextAnimationFrame兼容主浏览器方法

热门文章

  1. vuex的安装
  2. yii验证系统学习记录,基于yiicms(一)写的太长了,再写一篇(二)
  3. 【算法学习】老算法,新姿势,STL——Heap
  4. 【HASPDOG】hasp_update参数f和i区别
  5. aarch64_g3
  6. ARC073E Ball Coloring
  7. ajax.BeginForm异步提交表单并显示更新数据
  8. python基础--类的方法
  9. vue项目下使用iview总结
  10. 通过field:global给子元素添加css样式