一元线性回归方法预测鸢尾花

使用线性回归模型对鸢尾花数据集中的特征进行预测的示例。

  1. 载入数据:使用`load_iris()`函数从sklearn.datasets库中导入鸢尾花数据集,并将数据保存为Pandas DataFrame格式。

  2. 数据处理:提取出特征列"petal-length"和"petal-width"作为自变量(x)和因变量(y),并对它们进行归一化操作。

  3. 载入模型:使用`LinearRegression()`函数创建一个线性回归模型,并使用`fit()`函数对模型进行训练,拟合出最佳的回归线。

  4. 预测及结果可视化:使用训练好的模型对自变量x进行预测,将真实值与预测值分别以散点图和线条的形式绘制在图形窗口中,并使用黄色线条连接真实值与对应的预测值。

  5. 输出系数和截距:输出线性回归模型的系数和截距,即回归线的斜率和截距。

  6. 预测:使用训练好的模型对指定长度为3.3的花进行预测,输出预测值。

这个项目可以帮助理解线性回归模型的使用和预测过程,并通过可视化展示模型的拟合效果。在这个示例中,通过花瓣长度预测花瓣宽度,同时展示了真实值、预测值和回归线的关系。

代码展示

python 复制代码
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.linear_model import LinearRegression
# 鸢尾花数据集。这个数据集包含了三种不同类型的鸢尾花(山鸢尾、变色鸢尾和维吉尼亚鸢尾),
# 每种鸢尾花有四个特征(萼片长度、萼片宽度、花瓣长度和花瓣宽度)。


#1.载入数据
iris = load_iris() #导入数据集
#将数据保存为excel数据格式
# iris_data = iris.data
# # 构建Pandas DataFrame
# df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
# df.to_excel('iris.xlsx', index=False)


# 2.数据处理
data = pd.DataFrame(iris.data)
data.columns = ['sepal-length','sepal-width','petal-length','petal-width']#分别添加萼片长度、萼片宽度、花瓣长度和花瓣宽度为列名
x = data['petal-length'].values #x为自变量,y为因变量
y = data['petal-width'].values
x = x.reshape(len(x),1)#归一化操作
y = y.reshape(len(y),1)#归一化操作

# 2.载入模型
clf = LinearRegression()
clf.fit(x,y)#用于训练线性回归模型,其中X是自变量的输入数据,y是因变量的目标值。模型会根据提供的数据拟合出最佳的回归线。相当于训练模型的操作.

# 3.使用pre保存所有预测的结果
pre = clf.predict(x)#使用训练好的模型对输入数据x进行预测。预测结果会保存在变量pre中,它是根据模型和输入数据计算出的因变量的预测值。


# 4.使用散点图表示真实值与预测值以及使用模型训练得到的一元曲线clf
plt.scatter(x,y,s=50) #使用三点图来表示
plt.plot(x,pre,'r-',linewidth=2) #表示绘制一个红色线条('r-'),线条的宽度为2个单位(linewidth=2)。其中,x对应于横坐标轴,pre对应于纵坐标轴。
plt.xlabel('petal-length')
plt.ylabel('petal-width')
for idx,m in enumerate(x):
    plt.plot([m,m], [y[idx],pre[idx]],'y-')#使用plt.plot()函数绘制一条从点(m, y[idx])到点(m, pre[idx])的黄色线条('y-'),表示真实值与对应的预测值之间的连接线。
plt.show()
print(u'系数',clf.coef_)
print(u'截距',clf.intercept_)

# 5.预测
#对长度为3.9的花,预测其花宽度
print("预测值为:",clf.predict([[3.3]]))
相关推荐
jyyyx的算法博客几秒前
Leetcode 2337 -- 双指针 | 脑筋急转弯
算法·leetcode
3DVisionary4 分钟前
3D-DIC与机器学习协同模拟材料应力-应变本构行为研究
人工智能·机器学习·3d·3d-dic技术 机器学习·应力-应变本构行为·卷积神经网络(ecnn)·数字图像相关法(dic)
神经星星6 分钟前
无需预对齐即可消除批次效应,东京大学团队开发深度学习框架STAIG,揭示肿瘤微环境中的详细基因信息
人工智能·深度学习·机器学习
神经星星6 分钟前
【vLLM 学习】调试技巧
人工智能·机器学习·编程语言
Y.O.U..6 分钟前
今日八股——C++
开发语言·c++·面试
呵呵哒( ̄▽ ̄)"6 分钟前
线性代数:同解(1)
python·线性代数·机器学习
SweetCode12 分钟前
裴蜀定理:整数解的奥秘
数据结构·python·线性代数·算法·机器学习
weixin_3077791315 分钟前
使用C#实现从Hive的CREATE TABLE语句中提取分区字段名和数据类型
开发语言·数据仓库·hive·c#
Xiaok101823 分钟前
解决 Hugging Face SentenceTransformer 下载失败的完整指南:ProxyError、SSLError与手动下载方案
开发语言·神经网络·php
CryptoPP25 分钟前
springboot 对接马来西亚数据源API等多个国家的数据源
spring boot·后端·python·金融·区块链