首页
关于
推荐
百度一下
腾讯视频
Search
1
你要的草莓熊来啦!——郑科院
7,672 阅读
2
第4章 实训2 删除年龄异常数据
7,197 阅读
3
郑州科技学院2023-2024学年第一学期期末统一考试 Python程序设计
5,849 阅读
4
郑州科技学院2022-2023年第二学期期末统一考试 管理学 课程试题
5,400 阅读
5
Python程序设计教学大纲(董付国老师版)
2,029 阅读
默认分类
登录
/
注册
Search
庞立智
累计撰写
82
篇文章
累计收到
384
条评论
首页
栏目
默认分类
页面
关于
推荐
百度一下
腾讯视频
搜索到
82
篇与
的结果
2023-11-27
第6章 任务6.4 构建并评价回归模型(标签是连续的)
回归模型是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。例如,司机的鲁莽驾驶与道路交通事故数量之间的关系,最好的研究方法就是回归。它是最为人熟知的建模技术之一。线性回归通常是人们在学习预测模型时首选的技术之一。在这种技术中,因变量是连续的,自变量可以是连续的也可以是离散的,回归线的性质是线性的。线性回归使用最佳的拟合直线(也就是回归线)在因变量(Y)和一个或多个自变量(X)之间建立一种关系。用一个方程式来表示它,即Y = a +bx +e其中a表示截距,b表示直线的斜率,e是误差项。这个方程可以根据给定的预测变量(s)来预测目标变量的值。代码6-15 使用sklearn估计器构建线性回归模型import pandas as pd # 读取数据集 concrete = pd.read_csv('../data/concrete.csv', encoding='gbk') # 拆分数据和标签 concrete_data = concrete.iloc[:, :-1] concrete_target = concrete.iloc[:, -1] # 划分训练集和测试集 from sklearn.model_selection import train_test_split concrete_data_train, concrete_data_test, \ concrete_target_train, concrete_target_test = \ train_test_split(concrete_data, concrete_target, test_size=0.2, random_state=20) from sklearn.linear_model import LinearRegression concrete_linear = LinearRegression().fit(concrete_data_train, concrete_target_train) # 预测测试集结果 y_pred = concrete_linear.predict(concrete_data_test) print('预测前20个结果为:','\n', y_pred[: 20]) 代码6-16 本次回归结果的可视化import matplotlib.pyplot as plt from matplotlib import rcParams rcParams['font.sans-serif'] = 'SimHei' fig = plt.figure(figsize=(12, 6)) # 设定空白画布,并制定大小 plt.plot(range(concrete_target_test.shape[0]), list(concrete_target_test), color='blue') plt.plot(range(concrete_target_test.shape[0]), y_pred, color='red', linewidth=1.5, linestyle='-.') plt.legend(['真实值', '预测值']) plt.savefig('../tmp/回归结果.jpg', dpi=1080) plt.show() # 显示图片 代码6-17 线性回归模型的评价from sklearn.metrics import explained_variance_score,\ mean_absolute_error, mean_squared_error,\ median_absolute_error, r2_score print('diabetes数据线性回归模型的平均绝对误差为:', mean_absolute_error(concrete_target_test, y_pred)) print('diabetes数据线性回归模型的均方误差为:', mean_squared_error(concrete_target_test, y_pred)) print('diabetes数据线性回归模型的中值绝对误差为:', median_absolute_error(concrete_target_test, y_pred)) print('diabetes数据线性回归模型的可解释方差值为:', explained_variance_score(concrete_target_test, y_pred)) print('diabetes数据线性回归模型的R方值为:', r2_score(concrete_target_test, y_pred))
2023年11月27日
339 阅读
0 评论
2 点赞
2023-11-27
第6章 任务6.3 构建并评价分类模型(人以群分)
先理解svm是什么,怎么运作的。(Support Vector Machine, SVM)根据维度不同,划分方法不同。支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)代码6-10 使用sklearn 估计器构建支持向量机模型import pandas as pd # 读取数据集 quit_job = pd.read_csv('../data/quit_job.csv', encoding='gbk') # 拆分数据和标签 quit_job_data = quit_job.iloc[:, :-1] quit_job_target = quit_job.iloc[:, -1] # 划分训练集和测试集 from sklearn.model_selection import train_test_split quit_job_data_train, quit_job_data_test, \ quit_job_target_train, quit_job_target_test = \ train_test_split(quit_job_data, quit_job_target, test_size=0.2, random_state=66) # 标准化数据集 from sklearn.preprocessing import StandardScaler stdScale = StandardScaler().fit(quit_job_data_train) quit_job_trainScaler = stdScale.transform(quit_job_data_train) quit_job_testScaler = stdScale.transform(quit_job_data_test) # 构建SVM模型,并预测测试集结果 from sklearn.svm import SVC svm = SVC().fit(quit_job_trainScaler, quit_job_target_train) # 预测训练集结果 quit_job_target_pred = svm.predict(quit_job_testScaler) print('预测前20个结果为:\n', quit_job_target_pred[: 20])代码6-11 对于分类结果是否准确进行测试import numpy as np # 求出预测和真实一样的数目 true = np.sum(quit_job_target_pred == quit_job_target_test ) print('预测对的结果数目为:', true) print('预测错的结果数目为:', quit_job_target_test.shape[0] - true) print('预测结果准确率为:', true / quit_job_target_test.shape[0])代码6-12 评价支持向量机模型from sklearn.metrics import accuracy_score,precision_score, \ recall_score,f1_score,cohen_kappa_score print('使用SVM预测quit_job数据的准确率为:', accuracy_score(quit_job_target_test, quit_job_target_pred)) print('使用SVM预测quit_job数据的精确率为:', precision_score(quit_job_target_test, quit_job_target_pred)) print('使用SVM预测quit_job数据的召回率为:', recall_score(quit_job_target_test, quit_job_target_pred)) print('使用SVM预测quit_job数据的F1值为:', f1_score(quit_job_target_test, quit_job_target_pred)) print('使用SVM预测quit_job数据的Cohen’s Kappa系数为:', cohen_kappa_score(quit_job_target_test, quit_job_target_pred)) 代码6-13 输出支持向量机模型评价报告from sklearn.metrics import classification_report print('使用SVM预测customer数据的分类报告为:', '\n', classification_report(quit_job_target_test, quit_job_target_pred)) 代码6-14 绘制ROV曲线from sklearn.metrics import roc_curve import matplotlib.pyplot as plt # 求出ROC曲线的x轴和y轴 fpr, tpr, thresholds = \ roc_curve(quit_job_target_test, quit_job_target_pred) plt.figure(figsize=(10, 6)) plt.xlim(0, 1) # 设定x轴的范围 plt.ylim(0.0, 1.1) # 设定y轴的范围 plt.xlabel('False Postive Rate') plt.ylabel('True Postive Rate') plt.plot(fpr, tpr, linewidth=2, linestyle='-', color='red') plt.plot([0, 1], [0, 1], linestyle='-.', color='blue') plt.savefig('../tmp/ROC曲线.jpg', dpi=1080) plt.show()
2023年11月27日
404 阅读
0 评论
14 点赞
2023-11-24
万能钥匙
秘密ですよ。教えません!print(U8J9Q3G349@yaofafa.top:aa551188)雨にも負けず風にも負けず雪にも夏の暑さにも負けぬ丈夫なからだを持ち欲は無く決して瞋からず何時も静かに笑っている一日に玄米四合と味噌と少しの野菜を食べあらゆる事を自分を勘定に入れずに良く見聞きし判りそして忘れず
2023年11月24日
155 阅读
0 评论
1 点赞
2023-11-24
期末成绩分析之pandas应用
临近期末,要整理很多材料其中就有对成绩的分析。我们可以用pandas的强大功能来实现,避免人为统计失误。比如我要分析 某一班级成绩,要想要求出班级的,最高分,最低分,平均分,以及每个分数段成绩分布情况。我们可以这么做。 首先读取想要班级成绩:import pandas as pd # 读取 Excel 文件 data1 = pd.read_excel('c:/Users/plzy5/Desktop/投资学1-2班.xls') 我们可以先看一下数据长什么样子:data1.head()然后我们可以进取其中的要分析的数据列,用iloc方法:data2 = data1.iloc[:, 3:7] 选取数据之后,我们就可以用describe()方法查看一下统计数据:data2.describe()之后定义成绩段:bins = [0, 60, 70, 80, 90, 100] labels = ['不及格', '及格', '中等', '良好', '优秀']将成绩划分到不同的成绩段:data2 = data2.apply(lambda x: pd.cut(x, bins=bins, labels=labels, right=False))最后,将成绩统计到不同分数段并输出:grade_counts = data2.apply(lambda x: x.value_counts()).T
2023年11月24日
445 阅读
0 评论
9 点赞
2023-11-20
第6章 任务6.2 构建并评价聚类模型(物以类聚,人以群分)
聚类分析是在没有给定分类的情况下,根据数据的 相似度 进行样本分组的和种方法。是一种非监督学习方法。构建聚类模型并对聚类结果进行可视化# 代码6-6 导入库 import pandas as pd from sklearn.manifold import TSNE import matplotlib.pyplot as plt # 读取数据集 customer = pd.read_csv('../data/customer.csv', encoding='gbk') customer_data = customer.iloc[:, :-1] customer_target = customer.iloc[:, -1] # Kmeans聚类 from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=4, random_state=6).fit(customer_data) # 使用TSNE进行数据降维,降成两维 tsne = TSNE(n_components=2, init='random', random_state=2). fit(customer_data) df = pd.DataFrame(tsne.embedding_) # 将原始数据转换为DataFrame df['labels'] = kmeans.labels_ # 将聚类结果存储进df数据表 # 提取不同标签的数据 df1 = df[df['labels'] == 0] df2 = df[df['labels'] == 1] df3 = df[df['labels'] == 2] df4 = df[df['labels'] == 3] # 绘制图形 fig = plt.figure(figsize=(9, 6)) # 设定空白画布,并制定大小 # 用不同的颜色表示不同数据 plt.plot(df1[0], df1[1], 'bo', df2[0], df2[1], 'r*', df3[0], df3[1], 'gD', df4[0], df4[1], 'kD') plt.savefig('../tmp/聚类结果.jpg', dpi=1080) plt.show() # 显示图片代码6-7 组内相似度越大,组间差别越大,聚类效果越好使用FMI评价法评价K-means聚类模型from sklearn.metrics import fowlkes_mallows_score for i in range(1, 7): # 构建并训练模型 kmeans = KMeans(n_clusters=i, random_state=6).fit(customer_data) score = fowlkes_mallows_score(customer_target, kmeans.labels_) print('customer数据聚%d类FMI评价分值为:%f' % (i, score)) 代码6-8 使用轮廓系数评价法评价K-Means聚类模型from sklearn.metrics import silhouette_score silhouettteScore = [] for i in range(2, 10): # 构建并训练模型 kmeans = KMeans(n_clusters=i, random_state=6).fit(customer_data) score = silhouette_score(customer_data, kmeans.labels_) silhouettteScore.append(score) plt.figure(figsize=(10, 6)) plt.plot(range(2, 10), silhouettteScore, linewidth=1.5, linestyle='-') plt.savefig('../tmp/轮廓系数.jpg', dpi=1080) plt.show() 代码6-9 使用Calinski-Harabasz指数评价法评价K-Means聚类模型from sklearn.metrics import calinski_harabasz_score for i in range(2, 5): # 构建并训练模型 kmeans = KMeans(n_clusters=i, random_state=2).fit(customer_data) score = calinski_harabasz_score(customer_data, kmeans.labels_) print('customer数据聚%d类calinski_harabaz指数为:%f' % (i, score))
2023年11月20日
292 阅读
0 评论
2 点赞
1
...
7
8
9
...
17