python自带数据的模型合集

鸢尾花----聚类

Python鸢尾花数据集通常用于分类问题,
这些模型都可以通过Python中的Scikit-learn库进行实现。同时,也可以对这些模型进行参数调优以提高模型的准确性。
Logistic Regression(逻辑回归):
逻辑回归是一种二分类模型,它可以用于预测某种物品是否属于某个类别。例如,可以使用逻辑回归来预测鸢尾花是否为Setosa。
Decision Tree(决策树):
决策树是一种基于树结构的分类模型,它可以用于预测某种物品属于哪个类别。例如,可以使用决策树来预测鸢尾花的品种。
Random Forest(随机森林)
随机森林是一种基于决策树的集成学习模型,它可以用于预测某种物品属于哪个类别。例如,可以使用随机森林来预测鸢尾花的品种。
K-Nearest Neighbors(K近邻):
K近邻是一种基于距离的分类模型,它可以用于预测某种物品属于哪个类别。例如,可以使用K近邻来预测鸢尾花的品种。
Support Vector Machine(支持向量机):
支持向量机是一种基于分隔超平面的分类模型,它可以用于预测某种物品属于哪个类别。例如,可以使用支持向量机来预测鸢尾花的品种。
Naive Bayes(朴素贝叶斯):
朴素贝叶斯是一种基于贝叶斯定理的分类模型,它可以用于预测某种物品属于哪个类别。例如,可以使用朴素贝叶斯来预测品种。

写一个总览的各个模型

首先,需要加载鸢尾花数据集:


from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target

接着,将数据集拆分为训练集和测试集:


from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

然后,我们可以使用以下代码来实现这些模型:



Logistic Regression(逻辑回归):


from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression()
classifier.fit(X_train, y_train)
accuracy = classifier.score(X_test, y_test)
print("Logistic Regression Accuracy:", accuracy)

输出:


Logistic Regression Accuracy: 1.0


Decision Tree(决策树):


from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier()
classifier.fit(X_train, y_train)
accuracy = classifier.score(X_test, y_test)
print("Decision Tree Accuracy:", accuracy)

输出:


Decision Tree Accuracy: 1.0


Random Forest(随机森林):


from sklearn.ensemble import RandomForestClassifier
classifier = RandomForestClassifier()
classifier.fit(X_train, y_train)
accuracy = classifier.score(X_test, y_test)
print("Random Forest Accuracy:", accuracy)

输出:


Random Forest Accuracy: 1.0


K-Nearest Neighbors(K近邻):


from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier()
classifier.fit(X_train, y_train)
accuracy = classifier.score(X_test, y_test)
print("K-Nearest Neighbors Accuracy:", accuracy)

输出:


K-Nearest Neighbors Accuracy: 1.0


Support Vector Machine(支持向量机):


```python
from sklearn.svm import SVC
classifier = SVC()
classifier.fit(X_train, y_train)
accuracy = classifier.score(X_test, y_test)
print("Support Vector Machine Accuracy:", accuracy


生成一个python鸢尾花决策树模型,要求进行多次模型拟合并设置种子保留每次结果,进行模型准确率评估并绘制模型准确率的评估图像

# 导入库
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt

# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target

# 训练模型并计算准确率
accuracies = []
for i in range(10):
    # 划分训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=i)
    # 训练决策树模型
    model = DecisionTreeClassifier()
    model.fit(X_train, y_train)
    # 预测测试集并计算准确率
    y_pred = model.predict(X_test)
    acc = accuracy_score(y_test, y_pred)
    accuracies.append(acc)
    print(f"Accuracy {i}: {acc}")

# 绘制准确率图像
plt.plot(range(10), accuracies, 'o-')
plt.xlabel('Iteration')
plt.ylabel('Accuracy')
plt.title('Model Accuracy')
plt.show()

这个模型使用了sklearn库中的LinearRegression类,通过train_test_split将数据集分为训练集和测试集,
并使用fit()方法拟合训练集数据。最后使用predict()方法预测测试集,输出模型评价结果,包括系数、截距和R²得分。
系数、截距和R²得分是线性回归模型的评价指标。

系数指的是线性回归模型中每个特征对目标变量的影响程度,即斜率。在上述示例中,输出的model.coef_即为各特征的系数。
截距指的是线性回归模型中的常数项,与特征无关。在上述示例中,输出的model.intercept_即为截距。
R²得分是模型预测结果与实际结果的拟合程度,其取值范围为0到1。
R²得分越接近1,表示模型的预测结果越接近实际结果。
在上述示例中,输出的model.score(X_test, y_test)即为R²得分。

波士顿房价–回归

# 导入所需库
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
data_url = "http://lib.stat.cmu.edu/datasets/boston" #1.2版本boston被从sklearn移除
raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
X = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
y = raw_df.values[1::2, 2]

# 切分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 建立线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测测试集
y_pred = model.predict(X_test)

# 输出模型评价结果
print('Model Coefficients:', model.coef_)
print('Model Intercept:', model.intercept_)
print('Model Score:', model.score(X_test, y_test))


知识点

train_test_split 中参数含义

train_test_split()是sklearn库中用于将数据集分为训练集和测试集的函数,在机器学习中经常使用。它的参数含义如下:

arrays:表示需要划分的数据集,可以是数组、列表或稀疏矩阵等。

test_size:表示测试集的大小,可以是浮点数(表示测试集占总数据集的比例)或整数(表示测试集的样本数量)。默认值为0.25。

train_size:表示训练集的大小,可以是浮点数(表示训练集占总数据集的比例)或整数(表示训练集的样本数量)。默认值为None,即train_size=1-test_size。

random_state:表示随机种子,用于控制随机数生成器的种子。如果使用相同的随机种子,则每次生成的随机数序列都相同。

shuffle:表示是否在划分之前对数据集进行随机排序。默认值为True,即对数据集进行随机排序。

stratify:表示是否根据标签的分布情况对数据集进行分层抽样,以保证训练集和测试集的标签分布相似。默认值为None,即不进行分层抽样。

train_test_split()函数的返回值是一个元组,包含四个变量,分别是训练集数据、测试集数据、训练集标签、测试集标签。

评价模型准确率有哪些方法

评价模型准确率是机器学习中非常重要的一步,以下是常见的几种评价模型准确率的方法:

精确度(Accuracy):精确度是模型对所有样本进行分类的正确率。即正确分类的样本数除以总样本数。在样本分布均匀的情况下,精确度可以作为一个良好的评价指标,但在不平衡的情况下,精确度可能会给出误导性的结果。

召回率(Recall):召回率是指模型能够正确识别出正样本的能力。即在所有正样本中,模型正确分类的样本数除以总正样本数。召回率是在样本不平衡的情况下,更好的评价指标。

F1值(F1 Score):F1值综合了精确度和召回率的评价指标,是一个综合考虑模型准确率和召回率的评价指标。F1值越大,说明模型的预测结果越好。F1值等于2精确度召回率 / (精确度 + 召回率)。

ROC曲线:ROC曲线是根据不同的阈值绘制的分类器的性能曲线。ROC曲线的横轴是假阳性率(False Positive Rate),纵轴是真阳性率(True Positive Rate)。ROC曲线越接近左上角,说明分类器性能越好。

AUC值:AUC(Area Under Curve)是ROC曲线下的面积。AUC值越大,说明模型性能越好。

在实际应用中,根据不同的需求和数据集特征,选择不同的评价指标来评价模型的准确率。

你可能感兴趣的:(Python,机器学习我不学,python,机器学习,决策树)