易百教程人工智能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_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修正-人工智能监督学习(回归)相关推荐
- 易百教程人工智能python修正-人工智能无监督学习(聚类)
无监督机器学习算法没有任何监督者提供任何指导. 这就是为什么它们与真正的人工智能紧密结合的原因. 在无人监督的学习中,没有正确的答案,也没有监督者指导. 算法需要发现用于学习的有趣数据模式. 什么是聚 ...
- 易百教程人工智能python修正-人工智能监督学习(分类)
分类技术或模型试图从观测值中得出一些结论. 在分类问题中,我们有分类输出,如"黑色"或"白色"或"教学"和"非教学". ...
- 易百教程人工智能python修正-人工智能NLTK性别发现器
在这个问题陈述中,将通过提供名字来训练分类器以找到性别(男性或女性). 我们需要使用启发式构造特征向量并训练分类器.这里使用scikit-learn软件包中的标签数据. 以下是构建性别查找器的Pyth ...
- 易百教程wxpython_WxPython教程
wxPython是一个Python包装wxWidgets(这是用 C++ 编写),一个流行的跨平台GUI工具包.由Robin Dunn以及Harri Pasanen开发,wxPython是作为一个Py ...
- android教程 易百教程,Android RadioGroup
RadioGroup中使用类组单选按钮.如果我们选中一个单选按钮属于一个单选按钮组,它会自动取消选中同一组内的任何先前检查的单选按钮. RadioGroup 属性 以下是RadioGroup中控件有关 ...
- mysql 易百教程
mysql 易百教程 https://www.yiibai.com/mysql/text.html 转载于:https://www.cnblogs.com/dengmeinan/p/9767915. ...
- 比较好的学习网站:易百教程网
比较好的学习网站:易百教程网 例如网站上关于pg和es的教程: postgrepSQL https://www.yiibai.com/html/postgresql/2013/080567.html ...
- 易百教程——JavaFX教程
转载自 易百教程--JavaFX教程 JavaFX是Java的下一代图形用户界面工具包.JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序. JavaFX允许开发人员快速 ...
- 易百教程Oracle,Hibernate入门程序
全屏 在第一个Hibernate入门示例程序中,我们将使用eclipse IDE创建一个简单的hibernate应用程序示例.要在Eclipse IDE中创建第一个hibernate应用程序,需要遵循 ...
最新文章
- 华人首次!清华姚班助理教授张焕晨获得SIGMOD Jim Gray博士论文奖!
- Lesson3 Shader着色器
- ngnix有版本要求吗_联想小新15 2020款值得入手吗?性能怎么样?不可不看的秘密...
- MATLAB中squeeze函数的作用
- 2021-11-14泛型
- 华为荣耀20和x10比较_荣耀x10和荣耀20Pro哪个值得入手 荣耀x10和荣耀20Pro参数对比...
- 安卓逆向_4 --- Java 学习
- C# 泛型的协变和逆变
- 工信部证书含金量_关于推荐考取BIM工程师、装配式工程师证书
- STM8学习笔记---Modbus通信协议简单移植
- 【ArcGIS|空间分析】查找成本最低路径
- 190418每日一句
- 3Ds MAX 百度网盘免费下载
- 几种免杀转储lsass进程的技巧
- JUCE框架教程(5)——Plugin项目构造基础
- 微信小程序 input隐藏和不可操作的设置
- 【Pr】视频剪辑学习记录——导出
- 字节跳动变更集团LOGO 此前已正式更名为抖音集团
- 在一个MAX里面把多个动画混合在一起
- 利用html简单自我介绍案例