python练习——matplotlib

import numpy as np
import matplotlib.pyplot as plt
import math

x = np.linspace(0,2,5)
y1 = np.power(np.sin(x-2),2)
y2 = y1*np.power(math.e,-(x ** 2))
#plt.plot(x,y1,'r-',label = 'y = $x^2$')
#plt.plot(x,y2,'b-')
plt.plot(x,y2,'b-',label = 'y = $f(x) = sin^2(x-2)e^-(x^2)$')
plt.xlabel('X:')
plt.ylabel ('f(x):')
plt.legend()
plt.title('grap of function f(x)')
plt.show()

结果:





分析:

import numpy as np
import matplotlib.pyplot as plt
import scipy.optimize

X = np.random.rand(20,10)
b = np.random.rand(10,1)
z = np.random.normal(loc = 0, scale = 1, size = (20,1) )
y = np.dot(X,b) + z

#S(b) = ||Xb-y||2  -->_b = arg min(S(b))

#XT * X * _b = XT * y
#_b = (XT * X)-1 * XT * y

a = np.dot(X.T,X)
a = np.linalg.inv(a)
a = np.dot(a,X.T)
#c = np.dot(X.T,y)
_b = np.dot(a,y)


plt.title('Parameter plot')  
plt.xlabel('index')    
plt.ylabel('value')    
x = np.arange(0,10)    
p1 = plt.scatter(x, b, c='r', marker='x')   
p2 = plt.scatter(x, _b, c='b', marker='o')   
plt.legend([p1,p2],['True b','Estimated b'],loc = 'upper right')  
plt.show ()    
结果:




分析:


#-*- coding: gbk -*-
import matplotlib.pyplot as plt  
import numpy as np  
import scipy.stats

z = np.random.normal(0, 0.123, 10000)  
plt.hist(z , bins=25, density = True, color='b')    #绘画柱形图
     
kernel = scipy.stats.gaussian_kde(z)   #高斯密度分布
  
x = np.linspace(-0.75, 0.75, 10000)    
plt.plot(x, kernel(x), 'k' )  
    
plt.show()   

结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文将通过使用逻辑回归来预测学生是否被一个大学录取。我们将使用Python编程语言,Numpy、Pandas和Scikit-learn库。 数据集介绍 我们使用的是一个包含两个变量的数据集(如下所示): * Exam 1得分:学生在第一次考试中获得的分数 * Exam 2得分:学生在第二次考试中获得的分数 * 是否被录取:学生是否被录取(1表示被录取,0表示未被录取) 我们将使用这些变量来预测学生是否被录取。 数据预处理 首先,我们需要从我们的CSV文件中读取数据集并将其装入一个Pandas DataFrame中。 import numpy as np import pandas as pd data = pd.read_csv("exams.csv") print(data.head())​ 输出: Exam 1 Exam 2 Admitted 0 34 78 0 1 30 62 0 2 35 85 1 3 60 69 1 4 79 76 1 该数据集有100个学生,并且我们将首先对数据进行基本的统计分析。 data.describe() 输出: Exam 1 Exam 2 Admitted count 100.000000 100.000000 100.000000 mean 65.644444 66.600000 0.600000 std 19.458222 18.604269 0.492366 min 30.000000 32.000000 0.000000 25% 50.000000 51.000000 0.000000 50% 67.000000 67.500000 1.000000 75% 83.000000 79.000000 1.000000 max 98.000000 98.000000 1.000000 我们可以看到,平均分数为65.6和66.6分,最小分数为30分,最大分数为98分。如果我们查看“Admitted”列,则会发现600个人中有60%被录取了。 接下来,让我们通过放置它们在一个散点图中来可视化数据。 import matplotlib.pyplot as plt fig, ax = plt.subplots(figsize=(10,6)) ax.scatter(data[data['Admitted'] == 1]['Exam 1'], data[data['Admitted'] == 1]['Exam 2'], s=50, c='b', marker='o', label='Admitted') ax.scatter(data[data['Admitted'] == 0]['Exam 1'], data[data['Admitted'] == 0]['Exam 2'], s=50, c='r', marker='x', label='Not Admitted') ax.legend() ax.set_xlabel('Exam 1 Score') ax.set_ylabel('Exam 2 Score') plt.show() 输出: ![](https://cdn-images-1.medium.com/max/1200/1*23Nt-cA010-W2dIBymLG0A.png) 在这里,我们可以看到两个考试的分数,其中红色表示未被录取的学生,蓝色表示被录取的学生。我们的目标是通过学生的考试分数来预测他们是否被录取。 训练模型 现在,我们将使用Scikit-learn库来训练我们的逻辑回归模型。 from sklearn.linear_model import LogisticRegression X = data.iloc[:, :-1].values y = data.iloc[:, -1].values classifier = LogisticRegression() classifier.fit(X, y) 我们将先将数据集分成训练和测试集,然后在测试数据集上进行预测。 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0) classifier.fit(X_train, y_train) y_pred = classifier.predict(X_test) 评估模型 现在,我们已经完成了模型的训练,需要对其进行评估。 从Scikit-learn中的metrics库中导入准确率评分函数。 from sklearn.metrics import accuracy_score print('Accuracy: %.2f' % accuracy_score(y_test, y_pred)) 输出: Accuracy: 0.92 从结果可以看出,模型的准确度为92%,因此我们可以认为这个模型可以很好地预测学生是否被录取!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值