博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习中的预测问——回归与分类
阅读量:7253 次
发布时间:2019-06-29

本文共 1647 字,大约阅读时间需要 5 分钟。

回归就是预测数值,而分类是给数据打上标签归类。

本例中使用一个2次函数加上随机的扰动来生成500个点,然后尝试用1、2、100次方的多项式对该数据进行拟合。

拟合的目的是使得根据训练数据能够拟合出一个多项式函数,这个函数能够很好的拟合现有数据,并且能对未知的数据进行预测。

import matplotlib.pyplot as plt import numpy as np import scipy as sp from scipy.stats import norm from sklearn.pipeline import Pipeline from sklearn.linear_model import LinearRegression from sklearn.preprocessing import PolynomialFeatures from sklearn import linear_model ''' 数据生成 ''' x = np.arange(0, 1, 0.002) y = norm.rvs(0, size=500, scale=0.1) y = y + x**2 ''' 均方误差根 ''' def rmse(y_test, y):     return sp.sqrt(sp.mean((y_test - y) ** 2)) ''' 与均值相比的优秀程度,介于[0~1]。0表示不如均值。1表示完美预测.这个版本的实现是参考scikit-learn官网文档  ''' def R2(y_test, y_true):     return 1 - ((y_test - y_true)**2).sum() / ((y_true - y_true.mean())**2).sum() ''' 这是Conway&White《机器学习使用案例解析》里的版本 ''' def R22(y_test, y_true):     y_mean = np.array(y_true)     y_mean[:] = y_mean.mean()     return 1 - rmse(y_test, y_true) / rmse(y_mean, y_true) plt.scatter(x, y, s=5) degree = [1,2,100] y_test = [] y_test = np.array(y_test) for d in degree:     clf = Pipeline([('poly', PolynomialFeatures(degree=d)),('linear', LinearRegression(fit_intercept=False))])     clf.fit(x[:, np.newaxis], y)     y_test = clf.predict(x[:, np.newaxis])     print(clf.named_steps['linear'].coef_)     print('rmse=%.2f, R2=%.2f, R22=%.2f, clf.score=%.2f'%           (rmse(y_test, y),R2(y_test, y), R22(y_test, y),            clf.score(x[:, np.newaxis], y)))     plt.plot(x, y_test, linewidth=2) plt.grid() plt.legend(['1','2','100'], loc='upper left') plt.show()

 

 

 原文出处:https://blog.csdn.net/lsldd/article/details/41251583(转载)

 

转载于:https://www.cnblogs.com/heaiping/p/9067977.html

你可能感兴趣的文章
(转)8 Tactics to Combat Imbalanced Classes in Your Machine Learning Dataset
查看>>
电信网络拓扑图自动布局之总线
查看>>
微信开放平台开发——网页微信扫码登录(OAuth2.0)
查看>>
DataList和Repeat无数据时提示暂无数据几种方法
查看>>
SharePoint is Flowers and Rainbows and Unicorns
查看>>
【转载】ASP.NET MVC:通过 FileResult 向 浏览器 发送文件
查看>>
系统视图和系统存储过程DDL语句
查看>>
C#温故而知新学习系列之XML编程—XmlSerializer类把复杂对象序列化为XML文档(六)...
查看>>
用C做的电子时钟程序
查看>>
符号引用(typeglob,别名)与全局变量的修改
查看>>
利用泛型实现通用的list和array转换
查看>>
打油诗 自嘲
查看>>
计划开始写redis的源码分析笔记
查看>>
java 空字条串空判断 效率
查看>>
js倒计时跳转页面
查看>>
如何在工作中自学UI设计
查看>>
Qt之布局管理——停靠窗口
查看>>
写了一个远程桌面管理的Visual Studio扩展程序
查看>>
字节流、字符串、16进制字符串转换__Java(转)
查看>>
监视在input框中按下回车(enter) js实现
查看>>