回归是最重要的统计和机器学习工具之一。 我们认为机器学习的旅程从回归开始并不是错的。 它可以被定义为使我们能够根据数据做出决定的参数化技术,或者换言之,允许通过学习输入和输出变量之间的关系来基于数据做出预测。 这里,依赖于输入变量的输出变量是连续值的实数。 在回归中,输入和输出变量之间的关系很重要,它有助于我们理解输出变量的值随输入变量的变化而变化。 回归常用于预测价格,经济,变化等。

在Python中构建回归器

在本节中,我们将学习如何构建单一以及多变量回归器。

线性回归器/单变量回归器

让我们重点介绍一些必需的软件包 -

import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt

现在,我们需要提供输入数据,并将数据保存在名为linear.txt的文件中。

input = 'F:\\notebook\\linear.txt'

使用np.loadtxt函数加载这些数据。
input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]

下一步将是培训模型。下面给出培训和测试样本。

training_samples = int(0.6 * len(X))
testing_samples = len(X) - num_trainingX_train, y_train = X[:training_samples], y[:training_samples]X_test, y_test = X[training_samples:], y[training_samples:]

现在,我们需要创建一个线性回归器对象。

reg_linear = linear_model.LinearRegression()

用训练样本训练对象。
reg_linear.fit(X_train, y_train)

下面使用测试数据做预测。
y_test_pred = reg_linear.predict(X_test)

现在绘制并可视化数据。

plt.scatter(X_test, y_test, color = 'red')
plt.plot(X_test, y_test_pred, color = 'black', linewidth = 2)
plt.xticks(())
plt.yticks(())
plt.show()

执行上面示例代码,输出以下结果 -

现在,我们可以计算线性回归的性能如下 -

print("Performance of Linear regressor:")
print("Mean absolute error =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error =", round(sm.mean_squared_error(y_test, y_test_pred), 2))
print("Median absolute error =", round(sm.median_absolute_error(y_test, y_test_pred), 2))
print("Explain variance score =", round(sm.explained_variance_score(y_test, y_test_pred),
2))
print("R2 score =", round(sm.r2_score(y_test, y_test_pred), 2))

线性回归器的性能输出结果如下 -
Mean absolute error = 1.78
Mean squared error = 3.89
Median absolute error = 2.01
Explain variance score = -0.09
R2 score = -0.09

在上面的代码中,我们使用了这些小数据源。 如果想要处理一些大的数据集,那么可以使用sklearn.dataset来导入更大的数据集。

2,4.82.9,4.72.5,53.2,5.56,57.6,43.2,0.92.9,1.92.4,
3.50.5,3.41,40.9,5.91.2,2.583.2,5.65.1,1.54.5,
1.22.3,6.32.1,2.8

多变量回归
首先,让我们导入一些必需的软件包 -

import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures

现在,需要提供输入数据,并将数据保存在名为linear.txt的文件中。

input = 'F:\\notebook\\Mul_linear.txt'

我们将通过使用np.loadtxt函数加载这些数据。

input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]

下一步将是训练模型; 会提供训练和测试样品数据。

training_samples = int(0.6 * len(X))
testing_samples = len(X) - num_trainingX_train, y_train = X[:training_samples], y[:training_samples]X_test, y_test = X[training_samples:], y[training_samples:]

现在,我们需要创建一个线性回归器对象。

reg_linear_mul = linear_model.LinearRegression()

用训练样本训练对象。
reg_linear_mul.fit(X_train, y_train)

现在,最后需要用测试数据做预测。

y_test_pred = reg_linear_mul.predict(X_test)print("Performance of Linear regressor:")
print("Mean absolute error =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error =", round(sm.mean_squared_error(y_test, y_test_pred), 2))
print("Median absolute error =", round(sm.median_absolute_error(y_test, y_test_pred), 2))
print("Explain variance score =", round(sm.explained_variance_score(y_test, y_test_pred), 2))
print("R2 score =", round(sm.r2_score(y_test, y_test_pred), 2))

线性回归器的性能输出结果如下 -

Mean absolute error = 0.6
Mean squared error = 0.65 Median absolute error = 0.41 Explain variance score = 0.34 R2 score = 0.33 

现在,我们将创建一个10阶多项式并训练回归器。并提供样本数据点。

polynomial = PolynomialFeatures(degree = 10)
X_train_transformed = polynomial.fit_transform(X_train)
datapoint = [[2.23, 1.35, 1.12]]
poly_datapoint = polynomial.fit_transform(datapoint)poly_linear_model = linear_model.LinearRegression()
poly_linear_model.fit(X_train_transformed, y_train)
print("\nLinear regression:\n", reg_linear_mul.predict(datapoint))
print("\nPolynomial regression:\n", poly_linear_model.predict(poly_datapoint))

线性回归 -

[2.40170462]
多项式回归 -
[1.8697225]

在上面的代码中,我们使用了这些小数据。 如果想要一个大的数据集,那么可以使用sklearn.dataset来导入一个更大的数据集。

2,4.8,1.2,3.22.9,4.7,1.5,3.62.5,5,2.8,23.2,5.5,3.5,2.16,5,
2,3.27.6,4,1.2,3.23.2,0.9,2.3,1.42.9,1.9,2.3,1.22.4,3.5,
2.8,3.60.5,3.4,1.8,2.91,4,3,2.50.9,5.9,5.6,0.81.2,2.58,
3.45,1.233.2,5.6,2,3.25.1,1.5,1.2,1.34.5,1.2,4.1,2.32.3,
6.3,2.5,3.22.1,2.8,1.2,3.6

易百教程移动端:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"教程" 选择相关教程阅读或直接访问:http://m.yiibai.com 。

转载于:https://www.cnblogs.com/duoba/p/9534516.html

易百教程人工智能python修正-人工智能监督学习(回归)相关推荐

  1. 易百教程人工智能python修正-人工智能无监督学习(聚类)

    无监督机器学习算法没有任何监督者提供任何指导. 这就是为什么它们与真正的人工智能紧密结合的原因. 在无人监督的学习中,没有正确的答案,也没有监督者指导. 算法需要发现用于学习的有趣数据模式. 什么是聚 ...

  2. 易百教程人工智能python修正-人工智能监督学习(分类)

    分类技术或模型试图从观测值中得出一些结论. 在分类问题中,我们有分类输出,如"黑色"或"白色"或"教学"和"非教学". ...

  3. 易百教程人工智能python修正-人工智能NLTK性别发现器

    在这个问题陈述中,将通过提供名字来训练分类器以找到性别(男性或女性). 我们需要使用启发式构造特征向量并训练分类器.这里使用scikit-learn软件包中的标签数据. 以下是构建性别查找器的Pyth ...

  4. 易百教程wxpython_WxPython教程

    wxPython是一个Python包装wxWidgets(这是用 C++ 编写),一个流行的跨平台GUI工具包.由Robin Dunn以及Harri Pasanen开发,wxPython是作为一个Py ...

  5. android教程 易百教程,Android RadioGroup

    RadioGroup中使用类组单选按钮.如果我们选中一个单选按钮属于一个单选按钮组,它会自动取消选中同一组内的任何先前检查的单选按钮. RadioGroup 属性 以下是RadioGroup中控件有关 ...

  6. mysql 易百教程

    mysql 易百教程  https://www.yiibai.com/mysql/text.html 转载于:https://www.cnblogs.com/dengmeinan/p/9767915. ...

  7. 比较好的学习网站:易百教程网

    比较好的学习网站:易百教程网 例如网站上关于pg和es的教程: postgrepSQL https://www.yiibai.com/html/postgresql/2013/080567.html ...

  8. 易百教程——JavaFX教程

    转载自  易百教程--JavaFX教程 JavaFX是Java的下一代图形用户界面工具包.JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序. JavaFX允许开发人员快速 ...

  9. 易百教程Oracle,Hibernate入门程序

    全屏 在第一个Hibernate入门示例程序中,我们将使用eclipse IDE创建一个简单的hibernate应用程序示例.要在Eclipse IDE中创建第一个hibernate应用程序,需要遵循 ...

最新文章

  1. 华人首次!清华姚班助理教授张焕晨获得SIGMOD Jim Gray博士论文奖!
  2. Lesson3 Shader着色器
  3. ngnix有版本要求吗_联想小新15 2020款值得入手吗?性能怎么样?不可不看的秘密...
  4. MATLAB中squeeze函数的作用
  5. 2021-11-14泛型
  6. 华为荣耀20和x10比较_荣耀x10和荣耀20Pro哪个值得入手 荣耀x10和荣耀20Pro参数对比...
  7. 安卓逆向_4 --- Java 学习
  8. C# 泛型的协变和逆变
  9. 工信部证书含金量_关于推荐考取BIM工程师、装配式工程师证书
  10. STM8学习笔记---Modbus通信协议简单移植
  11. 【ArcGIS|空间分析】查找成本最低路径
  12. 190418每日一句
  13. 3Ds MAX 百度网盘免费下载
  14. 几种免杀转储lsass进程的技巧
  15. JUCE框架教程(5)——Plugin项目构造基础
  16. 微信小程序 input隐藏和不可操作的设置
  17. 【Pr】视频剪辑学习记录——导出
  18. 字节跳动变更集团LOGO 此前已正式更名为抖音集团
  19. 在一个MAX里面把多个动画混合在一起
  20. 利用html简单自我介绍案例

热门文章

  1. 【第30篇】Vision Transformer
  2. h5新特性DOMAST的简单理解
  3. VGA彩条显示(可以在显示屏上看到白黑红绿蓝的彩条)
  4. 【项目管理】紧急需求安排细节
  5. 360每日趣玩弹窗怎么彻底删除?
  6. sql语句模糊查询以及时间区间筛选
  7. 深入揭发:Android 的声音延迟正在变好,但要和 iOS 平起平坐还需时日…
  8. 支付宝支付定金期是什么意思?支付定金期含义介绍
  9. Strategy Analytics:假设禁令持续 华为全球手机出货量将同比下降24%
  10. 预测类问题中的时间序列预测模型