快捷搜索: 王者荣耀 脱发

【python机器学习100天—2022年】Day3-多元线性回归

大家好,我是ly甲烷😜,后端开发也有做算法的心呀💗 ,我们来学习python机器学习 之前的机器学习100天有很多库或者函数已经不用了,还有刚入门机器学习可能很多函数或者设置搞不明白, 所以,从python基础无缝到机器学习的教程来了。博主亲自操作一遍过的记录,绝对细致。如果学不会可以评论区讨论,如果我懂,我会回复的。
今天是机器学习第三天——数据预处理 👇 👇 👇,。

数据集

链接: 提取码:yyds 多元线性回归是简单线性回归的升级版,在数学的角度上来看,就是从一元方程升级到多元方程。

1.数据预处理

代码:

# 第一步:数据预处理
import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.model_selection import train_test_split

# 导入数据集
dataset = pd.read_csv(rE:workspacepython_workspacedatasets50_Startups.csv)
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, 4].values

# 将类别数字化,并进行one-hot编码
labelencoder = LabelEncoder()
X[:, 3] = labelencoder.fit_transform(X[:, 3])
ct = ColumnTransformer([("encoder", OneHotEncoder(), [3])], remainder=passthrough)
X = ct.fit_transform(X)

# 躲避虚拟变量陷阱
X = X[:, 1:]

# 拆分数据集为训练集和测试集
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)

虚拟变量陷阱

当由 one-hot 编码创建的两个或多个虚拟变量高度相关(多重共线)时,就会出现虚拟变量陷阱。这意味着可以从其他变量预测一个变量,从而难以解释回归模型中的预测系数变量。换言之,由于多重共线性,虚拟变量对预测模型的个体影响无法很好地解释。 以这个数据集为例: 特征数据集X: one - hot 编码后的特征,很显然如果数据既不是0,也不是1,那它一定是2。这就是所谓的多重共线性,会引起虚拟变量陷阱,不好解释 所以我们要删掉一列,来避免虚拟变量陷阱

# 躲避虚拟变量陷阱
X = X[:, 1:]

2.使用多元线性回归模型来训练训练集

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, Y_train)

3. 用测试集预测结果

y_pred = regressor.predict(X_test)

4.测试集结果可视化

import matplotlib.pyplot as plt
m = np.arange(0, 10)
plt.scatter(m, Y_test, color=red)
plt.scatter(m, y_pred, color=blue)
plt.show()

红点是预测的值,蓝点是实际的值,可以看出,预测的结果和实际情况还是比较接近的。


今日总结: 数据预处理——训练模型——预测结果——可视化显示,和昨天类似,换了一个模型。 引入了虚拟变量陷阱这个概念,只需要去掉一列虚拟数据就🆗了

经验分享 程序员 微信小程序 职场和发展