【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()
红点是预测的值,蓝点是实际的值,可以看出,预测的结果和实际情况还是比较接近的。
今日总结: 数据预处理——训练模型——预测结果——可视化显示,和昨天类似,换了一个模型。 引入了虚拟变量陷阱这个概念,只需要去掉一列虚拟数据就🆗了
上一篇:
通过多线程提高代码的执行效率例子