python自带数据的模型合集

news/2024/11/9 0:36:26/

鸢尾花----聚类

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.0Decision 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.0Random 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.0K-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.0Support 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()函数的返回值是一个元组,包含四个变量,分别是训练集数据、测试集数据、训练集标签、测试集标签。

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

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

其中,TP为真正例数,TN为真反例数,FP为假正例数,FN为假反例数。

准确率(Accuracy)

准确率(Accuracy)= (TP + TN) / (TP + TN + FP + FN)

精确率(Precision)

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

召回率(Recall)

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

F1值(F1-score)

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

ROC曲线和AUC值:

首先,需要将预测值按照从大到小的顺序排列,然后以不同的阈值为基准,计算对应的假正率和真正率,并绘制ROC曲线。AUC值是ROC曲线下的面积,可以使用Python的sklearn库中的roc_auc_score函数计算。
ROC曲线:ROC曲线是根据不同的阈值绘制的分类器的性能曲线。ROC曲线的横轴是假阳性率(False Positive Rate),纵轴是真阳性率(True Positive Rate)。ROC曲线越接近左上角,说明分类器性能越好。
AUC值:AUC(Area Under Curve)是ROC曲线下的面积。AUC值越大,说明模型性能越好。

混淆矩阵(Confusion Matrix):

                 预测正例	预测反例实际正例	TP	       FN实际反例	FP	       TN

http://www.ppmy.cn/news/31134.html

相关文章

程序员中的女性力量——做不被定义的自己

她是office lady,亦是程序媛,程序员界的靓丽色彩,不可或缺。 “只有那些疯狂到以为自己能够改变世界的人——才能真正改变世界。” 女性该如何定义自己?程序媛怎么发挥自己最大的价值。 争取自己做选择,经济和思想都独…

数据清洗和特征选择

数据清洗和特征选择 数据清洗和特征挖掘的工作是在灰色框中框出的部分,即“数据清洗>特征,标注数据生成>模型学习>模型应用”中的前两个步骤。 灰色框中蓝色箭头对应的是离线处理部分。主要工作是 从原始数据,如文本、图像或者应…

JavaScript混淆——逆向思维的艺术

在本文中我们将介绍三种常见的JavaScript混淆技术。 1.混合名称 通过将函数名称和变量名混合使用,我们可以使代码更难读。下面是一个使用名称混合的JavaScript函数。 function c(a){var b[2,4,8,a],db[0]b[1]b[2]b[3],ed""a;return e}混合名称技术通过…

java性能分析-堆内存最佳实践-堆分析

堆内存最佳实践 优化垃圾回收器标志参数很重要但是采用更好的编程实践获得更大的性能提升 1.谨慎的创建对象并尽快的丢弃,是更好的内存是提高gc更好的方法 2.频繁创建某种类型的对象会导致整体的性能变差 对象复用设计 线程局部变量 每个线程中创建一个局部变量…

MySQL索引优化

5 索引优化 5.1 索引单表优化案例 建表: CREATE TABLE IF NOT EXISTS article(id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,author_id INT(10) UNSIGNED NOT NULL,category_id INT(10) UNSIGNED NOT NULL,views INT(10) UNSIGNED NOT NULL,comment…

DEJA_VU3D - Cesium功能集 之 102-简单曲线箭头(标绘+编辑)

前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小140个左右的功能,后续也会不断的追加,所以暂时打算一周2-3更的样子来更新本专栏(每篇博文都会奉上完整demo的源代码,…

C++ 手写一个高性能json生成与解析器

文章目录 前言一、了解json格式二、统一数据类型:TJson三、解析json数据四、输出json数据五、实现便利的修改与访问六、性能优化七、源码下载与解析前言 由于C++标准库中并不存在解析json数据库,但json格式又非常的常见 如今绝大部分网络数据传输都采用的json数据传输格式,…

Linux操作系统安装——服务控制

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。个人主页:小李会科技的…