1. 线性回归算法
线性回归是一种用于预测连续数值的监督学习算法。线性回归算法通过最小化误差的平方和来寻找最佳拟合线,误差是指实际观测值与回归线预测值之间的差异。以下是使用Python和scikit-learn库实现线性回归的示例代码:
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 创建数据集
X = np.random.rand(100, 1)
y = 2 * X + 1 + 0.1 * np.random.randn(100, 1)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建并训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
# 使用模型进行预测
y_pred = model.predict(X_test)
# 计算性能指标
mse = mean_squared_error(y_test, y_pred)
print("均方误差:", mse)
2. 朴素贝叶斯分类器
朴素贝叶斯分类器(Naïve Bayes Classifier)采用了“属性条件独立性假设”(attribute conditional independence assumption):每个属性独立地对分类结果发生影响。
朴素贝叶斯分类器是一种基于概率论的监督学习算法,适用于分类问题。以下是使用Python和scikit-learn库实现朴素贝叶斯分类器的示例代码:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.naive_bayes import GaussianNB
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建并训练朴素贝叶斯分类器
model = GaussianNB()
model.fit(X_train, y_train)
# 使用模型进行预测
y_pred = model.predict(X_test)
# 计算性能指标
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)
3. 决策树分类器
决策树(Decision Tree)是一种常见的机器学习方法。
决策树是基于树结构来进行决策的,使人类面临决策问题时一种自然的处理机制。遵循简单直观的“分而治之”(Divide-and- conquer)策略。
决策树是一种基于特征选择的监督学习算法,适用于分类问题。以下是使用Python和scikit-learn库实现决策树的示例代码:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.tree import DecisionTreeClassifier
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建并训练决策树分类器
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
# 使用模型进行预测
y_pred = model.predict(X_test)
# 计算性能指标
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)
性能分析(鸢尾花数据集)
这里我们使用鸢尾花数据集进行性能分析。
鸢尾花数据集(Iris Dataset)是一个经典的分类数据集,包含了三种不同种类的鸢尾花(Setosa、Versicolour、Virginica)的萼片和花瓣的长度和宽度。这个数据集被广泛应用于机器学习、数据挖掘和统计学等领域,用于演示分类算法和分析。
鸢尾花数据集包含了150个样本,每个样本包含4个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度。这150个样本随机分为3个类别,分别是Setosa、Versicolour和Virginica。
下面分别计算了线性回归、朴素贝叶斯分类器和决策树分类器的性能指标。
线性回归的性能指标:均方误差(MSE)= 0.6867。
朴素贝叶斯分类器的性能指标:准确率 = 96.67%。
决策树分类器的性能指标:准确率 = 96%。
从性能指标上看,朴素贝叶斯分类器和决策树分类器的分类效果较好,而线性回归的预测效果较差