【机器学习】P7 Scikit Learn 实现线性回归以及逻辑回归

Scikit Learn 实现线性回归以及逻辑回归

  • Scikit Learn 包
  • Scikit Learn 实现线性回归
  • Scikit Learn 实现逻辑回归
  • Reference

Scikit Learn 包

Anaconda Prompt 中执行:

conda install scikit-learn

安装 Scikit Learn 包完成;

Scikit Learn 实现线性回归

引入包 LinearRegression
引入数据集 load_boston

from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston

加载波士顿房价数据集

# 加载波士顿房价数据集
boston = load_boston()
X = boston.data
y = boston.target

使用 LinearRegression 创建一个线性回归模型 lr

# 创建一个线性回归模型
lr = LinearRegression()

训练数据集,使用训练好的线性回归模型做出预测 y_pred

# 使用训练集对模型进行训练
lr.fit(X, y)

# 训练完成
# 预测新数据的房价
y_pred = lr.predict(X)

作图观察预测值(蓝色)与实际值(绿色):

import matplotlib.pyplot as plt

plt.scatter(range(X.shape[0]),y,c="green")
plt.scatter(range(X.shape[0]),y_pred,c="blue")

plt.show()

【机器学习】P7 Scikit Learn 实现线性回归以及逻辑回归_第1张图片
输出模型的属性数量、系数、准确度

print("模型系数数量:", X.shape[1])
print("模型系数:", lr.coef_)
print("模型准确度为:", lr.score(X, y))

完整代码:

from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston

# 加载波士顿房价数据集
boston = load_boston()
X = boston.data
y = boston.target

# 创建一个线性回归模型
lr = LinearRegression()

# 使用训练集对模型进行训练
lr.fit(X, y)

# 训练完成
# 预测新数据的房价
y_pred = lr.predict(X)
# print(y_pred)
# print(y)

import matplotlib.pyplot as plt

plt.scatter(range(X.shape[0]),y,c="green")
plt.scatter(range(X.shape[0]),y_pred,c="blue")

plt.show()

print("模型系数:", lr.coef_)
print("模型准确度:", lr.score(X, y))

更多补充:

sklearn 特征缩放

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

sklearn 计算均方误差

from sklearn.metrics import mean_squared_error

y_pred = model.predict(X_scaled)
mse = mean_squared_error(y, y_pred)
print("均方误差:", mse)

Scikit Learn 实现逻辑回归

引入包 LinearRegression

from sklearn.linear_model import LogisticRegression

建造简单案例数据

import numpy as np

X = np.array([[0.5, 1.5], [1,1], [1.5, 0.5], [3, 0.5], [2, 2], [1, 2.5]])
y = np.array([0, 0, 0, 1, 1, 1])

使用 LogisticRegression 创建一个逻辑回归模型 lr_model

lr_model = LogisticRegression()

训练数据集,使用训练好的逻辑回归模型做出预测 y_pred

# 训练数据集
lr_model.fit(X, y)

# 训练完成
# 做出预测 y_pred
y_pred = lr_model.predict(X)

作图观察预测值(蓝色)与实际值(绿色):

import matplotlib.pyplot as plt

plt.scatter(range(X.shape[0]),y,c="green")
plt.scatter(range(X.shape[0]),y_pred,c="blue")

plt.show()

因为数据太少,准确度达到了 100% ,蓝色预测结果把绿色实际值完全覆盖
【机器学习】P7 Scikit Learn 实现线性回归以及逻辑回归_第2张图片

查看准确度 Accuracy

print("Accuracy on training set:", lr_model.score(X, y))

Reference

[1] Ng, A. (2021). Coursera - Machine Learning - Week 3: Logistic Regression with Scikit-Learn [Ungraded Lab]. Coursera. Retrieved from https://www.coursera.org/learn/machine-learning/ungradedLab/F3ZpI/optional-lab-logistic-regression-with-scikit-learn/lab?path=%2Fnotebooks%2FC1_W3_Lab07_Scikit_Learn_Soln.ipynb

[2] Ng, A. (2021). Coursera - Machine Learning - Week 2: Linear Regression with Scikit-Learn [Ungraded Lab]. Coursera. Retrieved from https://www.coursera.org/learn/machine-learning/ungradedLab/uaIsm/optional-lab-linear-regression-with-scikit-learn

你可能感兴趣的:(#,机器学习知识储备,机器学习,逻辑回归,线性回归)