当前位置: 首页 > news >正文

保护动物网站建设策划书wordpress 社交登录

保护动物网站建设策划书,wordpress 社交登录,特种证书查询入口,服务器网站怎么做的目录 问题 11.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析数据探索 -- 单个分类变量的绘图树形图条形图扇形图雷达图 Cramer’s V 相关分析统计检验列联表分析卡方检验Fisher检验 绘图堆积条形图分组条形图 分类模型Logistic回归随机森林 import matplo…

目录

  • 问题 1
    • 1.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析
      • 数据探索 -- 单个分类变量的绘图
        • 树形图
        • 条形图
        • 扇形图
        • 雷达图
      • Cramer’s V 相关分析
      • 统计检验
        • 列联表分析
        • 卡方检验
        • Fisher检验
      • 绘图
        • 堆积条形图
        • 分组条形图
      • 分类模型
        • Logistic回归
        • 随机森林

import matplotlib.pyplot as plt
# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' import warnings
warnings.filterwarnings("ignore")
import pandas as pd# read by default 1st sheet of an excel file
path = '/home/shiyu/Desktop/path_acdemic/ant/数模/历年题目/2022/附件.xlsx'
d1 = pd.read_excel(path, sheet_name='表单1')
d2 = pd.read_excel(path, sheet_name='表单2')
d3 = pd.read_excel(path, sheet_name='表单3')print(d1.shape)
print(d2.shape)
print(d3.shape)
(58, 5)
(69, 15)
(8, 16)

问题 1

1.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析

数据探索 – 单个分类变量的绘图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

树形图

https://www.geeksforgeeks.org/treemaps-in-python-using-squarify/

import seaborn as sb 
import matplotlib.pyplot as plt
import squarifydata = list(d1['颜色'].value_counts())
labels = list(d1['颜色'].value_counts().index)plt.rcParams['figure.dpi'] = 300
plt.rcParams['savefig.dpi'] = 300plt.figure(figsize=(15,8))
squarify.plot(sizes=data, label=labels, text_kwargs={'fontsize': 20},color=sb.color_palette("Spectral",len(data))) plt.axis("off") 
(0.0, 100.0, 0.0, 100.0)

在这里插入图片描述

条形图
df = pd.DataFrame(d1['颜色'].value_counts())
df['颜色'] = df.index
df
count颜色
颜色
浅蓝20浅蓝
蓝绿15蓝绿
深绿7深绿
4
浅绿3浅绿
深蓝2深蓝
2
绿1绿
import matplotlib.pyplot as plt
import plotly.express as px
import numpy as np# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' fig = px.bar(df, x="颜色", y="count", title="颜色类别计数")
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

扇形图
print(d1['纹饰'].value_counts())
纹饰
C    30
A    22
B     6
Name: count, dtype: int64
import plotly.express as px
fig = px.pie(d1, names='纹饰', title="玻璃纹饰类别的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()

在这里插入图片描述

print(d1['类型'].value_counts())
fig = px.pie(d1, names='类型', title="玻璃类型的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()
类型
铅钡    40
高钾    18
Name: count, dtype: int64

在这里插入图片描述

print(d1['颜色'].value_counts())
fig = px.pie(d1, names='颜色', title="玻璃颜色的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()
颜色
浅蓝    20
蓝绿    15
深绿     7
紫      4
浅绿     3
深蓝     2
黑      2
绿      1
Name: count, dtype: int64

在这里插入图片描述

print(d1['表面风化'].value_counts())
fig = px.pie(d1, names='表面风化', title="表面风化和未风化的比例分布")
# center title
fig.update_layout(title_x=0.5)
fig.show()
表面风化
风化     34
无风化    24
Name: count, dtype: int64

在这里插入图片描述

雷达图

https://plotly.com/python/radar-chart/

df = pd.DataFrame(d1['颜色'].value_counts())
df['颜色'] = df.index
df
count颜色
颜色
浅蓝20浅蓝
蓝绿15蓝绿
深绿7深绿
4
浅绿3浅绿
深蓝2深蓝
2
绿1绿
import plotly.express as px
import pandas as pd
plt.rcParams['figure.dpi'] = 300
plt.rcParams['savefig.dpi'] = 300fig = px.line_polar(df, r='count', theta='颜色', line_close=False,title="颜色各类别计数")
fig.update_traces(fill='toself')
# center title
fig.update_layout(title_x=0.5)
fig.show()

在这里插入图片描述

表面风化 vs 纹饰
在这里插入图片描述

Cramer’s V 相关分析

Cramer’s V: 用于计算名义分类变量之间的相关性。

理论:
https://www.ibm.com/docs/en/cognos-analytics/11.1.0?topic=terms-cramrs-v

代码:
https://www.geeksforgeeks.org/how-to-calculate-cramers-v-in-python/

crosstab = pd.crosstab(d1['表面风化'],d1['纹饰'])# dataframe to numpy
d = crosstab.to_numpy()
d
array([[11,  0, 13],[11,  6, 17]])
import scipy.stats as stats 
import numpy as np X2 = stats.chi2_contingency(d, correction=False)[0] 
N = np.sum(d) 
minimum_dimension = min(d.shape)-1# Calculate Cramer's V 
result = np.sqrt((X2/N) / minimum_dimension) 'Cramer’s V 相关系数 表面风化 vs 纹饰 = ' + str(result)
'Cramer’s V 相关系数 表面风化 vs 纹饰 = 0.29233117579189066'
crosstab = pd.crosstab(d1['表面风化'],d1['类型'])
d = crosstab.to_numpy()X2 = stats.chi2_contingency(d, correction=False)[0] 
N = np.sum(d) 
minimum_dimension = min(d.shape)-1# Calculate Cramer's V 
result = np.sqrt((X2/N) / minimum_dimension) 'Cramer’s V 相关系数 表面风化 vs 类型 = ' + str(result)
'Cramer’s V 相关系数 表面风化 vs 类型 = 0.3444233600968322'
crosstab = pd.crosstab(d1['表面风化'],d1['颜色'])
d = crosstab.to_numpy()X2 = stats.chi2_contingency(d, correction=False)[0] 
N = np.sum(d) 
minimum_dimension = min(d.shape)-1# Calculate Cramer's V 
result = np.sqrt((X2/N) / minimum_dimension) 'Cramer’s V 相关系数 表面风化 vs 颜色 = ' + str(result)
'Cramer’s V 相关系数 表面风化 vs 颜色 = 0.34121631178560535'

统计检验

列联表分析
crosstab = pd.crosstab(d1['表面风化'],d1['纹饰'])
crosstab
纹饰ABC
表面风化
无风化11013
风化11617
卡方检验

https://www.geeksforgeeks.org/python-pearsons-chi-square-test/

import scipy.stats
from scipy.stats import chi2_contingency
# 表面风化 vs 纹饰
crosstab = pd.crosstab(d1['表面风化'],d1['纹饰'])
stat, p, dof, expected = chi2_contingency(crosstab)
# interpret p-value
alpha = 0.05
print("p value is " + str(p))
if p <= alpha:print('Dependent (reject H0)')
else:print('Independent (H0 holds true)')
p value is 0.08388839673210007
Independent (H0 holds true)
# 表面风化 vs 类型
crosstab = pd.crosstab(d1['表面风化'],d1['类型'])
stat, p, dof, expected = chi2_contingency(crosstab)
# interpret p-value
alpha = 0.05
print("p value is " + str(p))
if p <= alpha:print('Dependent (reject H0)')
else:print('Independent (H0 holds true)')
p value is 0.019548014331003307
Dependent (reject H0)
# 表面风化 vs 颜色
crosstab = pd.crosstab(d1['表面风化'],d1['颜色'])
stat, p, dof, expected = chi2_contingency(crosstab)
# interpret p-value
alpha = 0.05
print("p value is " + str(p))
if p <= alpha:print('Dependent (reject H0)')
else:print('Independent (H0 holds true)')
p value is 0.5066496855976865
Independent (H0 holds true)
Fisher检验
pd.crosstab(d1['表面风化'],d1['颜色'])
颜色浅绿浅蓝深绿深蓝绿蓝绿
表面风化
无风化28322160
风化112402092
import FisherExact as fsprint('表面风化 vs 颜色')
print(fs.fisher_exact(pd.crosstab(d1['表面风化'],d1['颜色'])))
表面风化 vs 颜色
0.0

绘图

堆积条形图

表面风化 vs 纹饰

crosstab = pd.crosstab(d1['表面风化'],d1['纹饰'])
crosstab
纹饰ABC
表面风化
无风化11013
风化11617
dp = [['无风化', '纹饰A', 11], ['无风化', '纹饰B', 0],['无风化', '纹饰C', 13],['风化', '纹饰A', 11],['风化', '纹饰B', 6],['风化', '纹饰C', 17]]# Create the pandas DataFrame
df = pd.DataFrame(dp, columns=['表面风化', '纹饰', '计数'])
df
表面风化纹饰计数
0无风化纹饰A11
1无风化纹饰B0
2无风化纹饰C13
3风化纹饰A11
4风化纹饰B6
5风化纹饰C17
import matplotlib.pyplot as plt
import plotly.express as px
import numpy as np# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' fig = px.bar(df, x="表面风化", y="计数", color="纹饰", title="表面风化与纹饰的关系")
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

表面风化 vs 玻璃类型

crosstab = pd.crosstab(d1['表面风化'],d1['类型'])
crosstab
类型铅钡高钾
表面风化
无风化1212
风化286
dp = [['无风化', '铅钡', 12], ['无风化', '高钾', 12],['风化', '铅钡', 28],['风化', '高钾', 6]]# Create the pandas DataFrame
df = pd.DataFrame(dp, columns=['表面风化', '玻璃类型', '计数'])
df
表面风化玻璃类型计数
0无风化铅钡12
1无风化高钾12
2风化铅钡28
3风化高钾6
fig = px.bar(df, x="表面风化", y="计数", color="玻璃类型", title="表面风化与玻璃类型的关系")
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

表面风化 vs 颜色

crosstab = pd.crosstab(d1['表面风化'],d1['颜色'])
crosstab
颜色浅绿浅蓝深绿深蓝绿蓝绿
表面风化
无风化28322160
风化112402092
col1 = pd.DataFrame(['无风化'] * crosstab.shape[1] + ['风化'] * crosstab.shape[1])
col2 = pd.DataFrame(list(crosstab.columns) * 2)
col3 = pd.DataFrame(list(crosstab.iloc[0]) + list(crosstab.iloc[1]))df = pd.concat([col1, col2, col3], axis=1)
df.columns = ['表面风化', '颜色', '计数']
df
表面风化颜色计数
0无风化浅绿2
1无风化浅蓝8
2无风化深绿3
3无风化深蓝2
4无风化2
5无风化绿1
6无风化蓝绿6
7无风化0
8风化浅绿1
9风化浅蓝12
10风化深绿4
11风化深蓝0
12风化2
13风化绿0
14风化蓝绿9
15风化2
fig = px.bar(df, x="表面风化", y="计数", color="颜色", title="表面风化与颜色的关系")
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

分组条形图
fig = px.bar(df, x="表面风化", y="计数", color="颜色", title="表面风化与颜色的关系", barmode='group')
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述

分类模型

Logistic回归

https://www.w3schools.com/python/python_ml_logistic_regression.asp

import sklearn
import warnings 
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn import linear_modeld1['颜色'].fillna('浅蓝', inplace=True)
df = d1.iloc[:,1:5]
# data encode
label_encoder = LabelEncoder()
df_encode = df.select_dtypes(include=['object']).apply(label_encoder.fit_transform)
df_encode.head()
纹饰类型颜色表面风化
02160
10011
20160
30160
40160
X = df_encode.drop('表面风化', axis=1)
y = df_encode['表面风化']logr = linear_model.LogisticRegression()
logr.fit(X,y)print('截距项 = ' + str(logr.intercept_))log_odds = logr.coef_
odds = numpy.exp(log_odds)
print('回归系数= ' + str(odds))
截距项 = [0.20030893]
回归系数= [[1.12409879 0.24081195 1.1795666 ]]
随机森林
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
#import shap
from sklearn.metrics import accuracy_score
import numpy as np
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X, y)importances = clf.feature_importances_
feature_imp_df = pd.DataFrame({'变量名': X.columns, '重要性程度': importances}).sort_values('重要性程度', ascending=True) 
feature_imp_df
变量名重要性程度
0纹饰0.270358
1类型0.297645
2颜色0.431998
import matplotlib.pyplot as plt
import plotly.express as px
import numpy as np# Linux show Chinese characters *** important
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' fig = px.bar(feature_imp_df, y="变量名", x="重要性程度",title="表面风化与其玻璃类型、纹饰和颜色的关系强度", orientation='h')
# center title
fig.update_layout(title_x=0.5)
# remove background color
fig.update_layout({
'plot_bgcolor': 'rgba(0, 0, 0, 0)',
'paper_bgcolor': 'rgba(0, 0, 0, 0)',
})fig.show()

在这里插入图片描述
相关阅读:

  • 2022高教社杯全国大学生数学建模竞赛C题 问题一(2) Python代码
  • 2022高教社杯全国大学生数学建模竞赛C题 问题一(3) Python代码
  • 2023高教社杯全国大学生数学建模竞赛C题 Python代码
http://www.yayakq.cn/news/501122/

相关文章:

  • 公司网站开发外包公司成立网站建设工作领导小组
  • 技术支持:上海网站建设wordpress建站访问不了
  • 成都创新网站建设如何让百度收录我的网站
  • 湘潭网站建设 要上磐石网络wordpress 高清背景
  • 福州快速网站建设郑州建设银行网站房贷网点在哪里
  • 企业把网站关闭原因国外大气网站
  • 网站怎么做域名视觉传播设计与制作
  • 公司网站维护价格表2023建站网站哪个好
  • 如何做哟个优惠券网站WordPress意见反馈插件
  • 学互联网做网站是什么荣耀手机最新款2022新上市
  • wordpress.org 建站网页翻译不了中文
  • 建设宣传网站上的请示小程序开发工具下载
  • 做网站的是些什么公司绵阳欣城建设
  • 网站建设 资质荣誉网站内链怎么布局
  • 简单的网站制作代码莱钢建设网站
  • h5响应式企业网站源码甘肃省建设局网站
  • 网站客户端怎么做的百度的域名
  • 做房产销售可以在哪些网站上找客户wordpress音乐插件百度
  • 济南网站建设及推广公众号 wordpress 结合
  • 佛山智唯网站建设seo快排软件
  • 苍南哪里有网站建设公司根据网站开发app
  • vs网站模板装饰装潢设计
  • wdcp网站迁移做网站要多少钱汉狮
  • 深圳网站优化建设南京做网站优化的企业排名
  • 帮别人做网站后期维护秦皇岛网络
  • 网站服务器崩溃2015 军考 网站建设
  • 公司名称被大量网站收录江苏省建设厅官方网站资质查询
  • 便宜的购物网站排名网站建设需要多少人员
  • 太原做网站效果怎么样建设银行官网网站首页纪念币预约
  • 制作伪装网站广州网站建设推广服务