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

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

在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_training

X_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_training

X_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

时间: 2024-10-06 14:32:05

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

易百教程人工智能python修正-人工智能数据准备-标记数据

我们已经知道,某种格式的数据对于机器学习算法是必需的. 另一个重要的要求是,在将数据作为机器学习算法的输入发送之前,必须正确标记数据. 例如,如果所说的分类,那么数据上会有很多标记. 这些标记以文字,数字等形式存在.与sklearn中的机器学习相关的功能期望数据必须具有数字标记. 因此,如果数据是其他形式,那么它必须转换为数字. 这个将单词标签转换为数字形式的过程称为标记编码. 标记编码步骤 按照以下步骤在Python中对数据标记进行编码 - 第1步 - 导入有用的软件包 如果使用Python,

Struts2 类型转换(易百教程)

在HTTP请求中的一切都被视为一个String由协议.这包括数字,布尔值,整数,日期,小数和一切.每一件事情是一个字符串,将根据HTTP.然而,Struts类可以有任何数据类型的属性.Struts的自动装配属性? Struts使用了多种类型转换器在幕后做繁重.例如,如果Action类的属性有一个整数,Struts的自动转换请求参数的整数属性没有做任何事情.默认情况下,Struts的一些类型转换器.下面列出了他们中的一些,如果您正在使用其中任何一个,那么你有什么可担心的: Integer, Flo

Mybatis与Spring集成(易百教程)

整个Mybatis与Spring集成示例要完成的步骤如下: 1.示例功能描述 2.创建工程 3.数据库表结构及数据记录 4.实例对象 5.配置文件 6.测试执行,输出结果 1.示例功能描述 在本示例中,需要完成这样的一个简单功能,即,指定一个用户(ID=1),查询出这个用户的基本信息,并关联查询这个用户的所有订单. 2.创建工程 首先创建一个工程的名称为:mybatis07-spring,在 src 源代码目录下建立文件夹 config,并将原来的 mybatis 配置文件 Configurat

MyBatis整合Spring MVC(易百教程)

MyBatis是ibatis的升级版,作为hibernate的老对手,它是一个可以自定义SQL.存储过程和高级映射的持久层框架.与Hibernate 的主要区别就是 Mybatis 是半自动化的,而 Hibernate 是全自动的,所以当应用需求越来越复杂的时候,自动化的 SQL 显得比较笨拙.经常搭框架的人应该都清楚,框架搭建的核心就是配置文件. 在这里我们需要创建 web 工程.今天将直接用 mybatis与Spring mvc 的方式集成起来,源码在本文结尾处下载.主要有以下几个方面的配置

Mybatis 多对多(易百教程)

mybatis3.0 添加了association和collection标签专门用于对多个相关实体类数据进行级联查询,但仍不支持多个相关实体类数据的级联保存和级联删除操作.因此在进行实体类多对多映射表设计时,需要专门建立一个关联对象类对相关实体类的关联关系进行描述.下文将以"User"和"Group"两个实体类之间的多对多关联映射为例进行CRUD操作. 1.应用场景 假设项目中存在用户和用户组,从一个用户读取出它所在的用户组,从一个用户组也知道这个组内的所有用户信息

Python是人工智能和机器学习的最佳编程语言,证据在此!

人工智能与机器学习是IT行业的新兴热门领域.虽然有关其发展安全性的讨论日益增多,但开发人员仍在不断扩展人工智能的能力与存储容量.如今,人工智能已远远地超出科幻小说中的构想,成为了现实.人工智能技术广泛应用于处理分析大量数据,由于其处理的工作量及工作强度明显提高,因此这些工作今后无需人工操作. 例如,人工智能被应用于分析学中以建立预测,帮助人们创建有力策略和更为有效的解决办法.金融科技公司将人工智能应用于投资平台中,进行市场调查并预测如何实现投资收益最大化.旅游业使用人工智能发送个性化建议,或是开

2018年时机终于到了!学python转行人工智能

分享一个坏消息.一个好消息,还有一个彩蛋邀你来砸,你感觉怎么样呢? 一个坏消息: 2018年1月 教育部印发的<普通高中课程方案和语文等学科课程标准>新加入了数据结构.人工智能.开源硬件设计等 AI 相关的课程. 这意味着职场新人和准备找工作的同学们,为了在今后十年内不被淘汰,你们要补课了,从初中开始. 一个好消息: 人工智能尖端人才远远不能满足需求.行业风口的人工智能,在中国人才缺口将超过500万人,而中国人工智能人才数量目前只有5万(数据来自工信部教育考试中心). 我们都知道Python容

深圳人工智能+python为何火爆?

Python诞生很早,但真正火爆时间并不长.目前Python语言的应用领域非常广泛,主要有系统编程.图形处理.数学处理.文本处理.数据库编程.网络编程.Web编程.多媒体应用.pymo引擎.黑客编程等等.这就导致了Python的火爆,不过Python培训为什么越来越受欢迎呢?一个词:水涨船高. 为什么Python越来越火? Python 是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎,同时在运维领域也被大量运用到自动

Python CGI编程(转自易百)

Python CGI编程 Python的CGI编程,公共网关接口或CGI,Web服务器和一个自定义的脚本之间交换信息是一组定义的标准. 什么是CGI ? 公共网关接口或CGI,Web服务器和一个自定义的脚本之间交换信息是是一组定义的标准.. CGI规范在由NCSA和NCSA定义的CGI保持如下: 公共网关接口或CGI,如HTTP服务器信息服务器的标准接口是外部网关方案. 当前版本CGI/1.1和CGI/1.2. 网页浏览 理解CGI的概念,让我们看看会发生什么,当我们点击一个超链接到浏览特定网页