python函数曲线代码,Python怎么做曲线表

python 怎么画与其他方法进行比较的ROC曲线?

使用sklearn的一系列方法后可以很方便的绘制处ROC曲线,这里简单实现以下。

双城网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。成都创新互联公司公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

主要是利用混淆矩阵中的知识作为绘制的数据(如果不是很懂可以先看看这里的基础):

tpr(Ture Positive Rate):真阳率 图像的纵坐标

fpr(False Positive Rate):阳率(伪阳率) 图像的横坐标

mean_tpr:累计真阳率求平均值

mean_fpr:累计阳率求平均值

import numpy as np

import matplotlib.pyplot as plt

from sklearn import svm, datasets

from sklearn.metrics import roc_curve, auc

from sklearn.model_selection import StratifiedKFold

iris = datasets.load_iris()

X = iris.data

y = iris.target

X, y = X[y != 2], y[y != 2] # 去掉了label为2,label只能二分,才可以。

n_samples, n_features = X.shape

# 增加噪声特征

random_state = np.random.RandomState(0)

X = np.c_[X, random_state.randn(n_samples, 200 * n_features)]

cv = StratifiedKFold(n_splits=6) #导入该模型,后面将数据划分6份

classifier = svm.SVC(kernel='linear', probability=True,random_state=random_state) # SVC模型 可以换作AdaBoost模型试试

# 画平均ROC曲线的两个参数

mean_tpr = 0.0 # 用来记录画平均ROC曲线的信息

mean_fpr = np.linspace(0, 1, 100)

cnt = 0

for i, (train, test) in enumerate(cv.split(X,y)): #利用模型划分数据集和目标变量 为一一对应的下标

cnt +=1

probas_ = classifier.fit(X[train], y[train]).predict_proba(X[test]) # 训练模型后预测每条样本得到两种结果的概率

fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1]) # 该函数得到伪正例、真正例、阈值,这里只使用前两个

mean_tpr += np.interp(mean_fpr, fpr, tpr) # 插值函数 interp(x坐标,每次x增加距离,y坐标) 累计每次循环的总值后面求平均值

mean_tpr[0] = 0.0 # 将第一个真正例=0 以0为起点

roc_auc = auc(fpr, tpr) # 求auc面积

plt.plot(fpr, tpr, lw=1, label='ROC fold {0:.2f} (area = {1:.2f})'.format(i, roc_auc)) # 画出当前分割数据的ROC曲线

plt.plot([0, 1], [0, 1], '--', color=(0.6, 0.6, 0.6), label='Luck') # 画对角线

mean_tpr /= cnt # 求数组的平均值

mean_tpr[-1] = 1.0 # 坐标最后一个点为(1,1) 以1为终点

mean_auc = auc(mean_fpr, mean_tpr)

plt.plot(mean_fpr, mean_tpr, 'k--',label='Mean ROC (area = {0:.2f})'.format(mean_auc), lw=2)

plt.xlim([-0.05, 1.05]) # 设置x、y轴的上下限,设置宽一点,以免和边缘重合,可以更好的观察图像的整体

plt.ylim([-0.05, 1.05])

plt.xlabel('False Positive Rate')

plt.ylabel('True Positive Rate') # 可以使用中文,但需要导入一些库即字体

plt.title('Receiver operating characteristic example')

plt.legend(loc="lower right")

plt.show()

不能直接写出函数的表达式 怎么在python里画函数图象呢?

不写出y=f(x)这样的表达式,由隐函数的等式直接绘制图像,以x²+y²+xy=1的图像为例,使用sympy间接调用matplotlib工具的代码和该二次曲线图像如下(注意python里的乘幂符号是**而不是^,还有,python的sympy工具箱的等式不是a==b,而是a-b或者Eq(a,b),这几点和matlab的区别很大)

直接在命令提示行的里面运行代码的效果

from sympy import *;

x,y=symbols('x y');

plotting.plot_implicit(x**2+y**2+x*y-1);

Python如何画函数的曲线

输入以下代码导入我们用到的函数库。

import numpy as np

import matplotlib.pyplot as plt

x=np.arange(0,5,0.1);

y=np.sin(x);

plt.plot(x,y)

采用刚才代码后有可能无法显示下图,然后在输入以下代码就可以了:

plt.show()

用Python或MATLAB如何画三元平方和函数曲线???

Python代码 import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()ax = Axes3D(fig)X = np.arange(-4, 4, 0.25)Y = np.arange(-4, 4, 0.25)X, Y = np.meshgrid(X, Y)R = np.sqrt(X**2 + Y**2)Z = np.sin(R)ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='hot')plt.show() 运行结果:

python画正余弦函数图像?

用python怎样画出如题所示的正余弦函数图像? 如此编写代码,使其中两个轴、图例、刻度,大小,LaTex公式等要素与原图一致,需要用到的代码如下,没有缩进:

#-*-codeing:utf-8;-*-

from matplotlib import pyplot as plt

import numpy as np

a=np.linspace(0,360,980)

b=np.sin(a/180*np.pi)

c=np.cos(a/180*np.pi)

fig = plt.figure()

ax = fig.add_subplot(111)

ax.set_xlim([0, 360])

ax.plot(a,b,label=r"$y=\sin(\theta)$")

ax.plot(a,c,label=r"$y=\cos(\theta)$")

ax.grid(True)

ax.set_ylabel(r"$y$")

ax.set_xlabel(r"$\theta$")

plt.xticks(np.arange(0,360+1,45))

plt.title("Sine Cosine Waves")

plt.legend()

plt.savefig("SinCosWaveDegFont.jpg")

plt.show()

代码运行show的窗口图

代码的截图

代码输出的文件的图


本文名称:python函数曲线代码,Python怎么做曲线表
本文路径:http://ybzwz.com/article/hsppei.html