📅  最后修改于: 2023-12-03 14:58:52.509000             🧑  作者: Mango
线性回归是机器学习中最基础也是最常用的算法之一。在本文中我们将使用线性回归来预测鱼市中鱼的价格。具体来说,我们将使用一个简单的单变量线性回归模型来拟合一个包含鱼的长度和价格的数据集。
我们使用的是来自Kaggle的“Fish Market”数据集,该数据集包含了来自不同种类的鱼的标准度量值和价格数据。我们只使用其中的长度和价格两列数据。可以从以下链接下载数据集: https://www.kaggle.com/aungpyaeap/fish-market
首先我们需要加载数据集,并去除其中缺失数据。
import pandas as pd
import numpy as np
# 加载数据集
df = pd.read_csv('Fish.csv')
# 去除缺失数据
df.dropna(inplace=True)
# 取出长度和价格两列数据
X = df.iloc[:, 1].values
y = df.iloc[:, -1].values
我们需要将数据集拆分出训练集和测试集,同时对数据进行归一化处理,以便在计算时能够提高准确性。
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# 将数据集拆分成训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 对数据进行归一化处理
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train.reshape(-1, 1))
X_test = scaler.transform(X_test.reshape(-1, 1))
接下来我们将使用线性回归模型来拟合训练数据并进行预测。这里我们使用Scikit-learn库中的LinearRegression模型。
from sklearn.linear_model import LinearRegression
# 创建线性回归模型
regressor = LinearRegression()
# 拟合训练集
regressor.fit(X_train, y_train)
# 使用模型对测试集进行预测
y_pred = regressor.predict(X_test)
最后,我们可以将拟合结果可视化,以便更好地理解模型的表现。
import matplotlib.pyplot as plt
# 将结果可视化
plt.scatter(X_train, y_train, color='red')
plt.plot(X_train, regressor.predict(X_train), color='blue')
plt.title('Fish Market - Linear Regression')
plt.xlabel('Fish Length')
plt.ylabel('Fish Price')
plt.show()
本文中,我们使用了线性回归模型来预测鱼市中鱼的价格,并介绍了加载数据集、数据处理、模型拟合和结果可视化的具体步骤。这个例子虽然简单,但可以帮助我们更好地理解机器学习中的核心思想及流程。