機器學習 3 Scipy的學習

2021-10-03 08:48:26 字數 1900 閱讀 8152

scipy是乙個高階的科學計算庫,和numpy聯絡很緊密,它的不同子模組對應不同的應用,如下:

模組名功能

scipy.cluster

向量量化

scipy.constants

數學常量

scipy.fftpack

快速傅利葉變換

scipy.integrate

積分scipy.interpolate

插值scipy.io

資料輸入輸出

scipy.linalg

線性代數

scipy.ndimage

n維影象

scipy.odr

正交距離回歸

scipy.optimize

優化演算法

scipy.signal

訊號處理

scipy.sparse

稀疏矩陣

scipy.spatial

空間資料結構和演算法

scipy.special

特殊數學函式

scipy.stats

統計函式

scipy的一些基礎應用如下:

# -*- coding: utf-8 -*

import scipy.stats as stats # 匯入scipy的統計庫

import scipy.linalg as linalg # 匯入scipy的線性代數運算庫

from scipy.optimize import fmin # 從scipy的優化演算法庫匯入fmin

import numpy as np

def f(x):

return x ** 2 + 10 * np.sin(x)

def main():

# 1、產生20個在[0,1]均勻分布的隨機數

x = stats.uniform.rvs(size=20)

print("print1:")

print(x)

# 2、產生20個在服從[0,1]正態分佈的隨機數

x = stats.norm.rvs(size=20, loc=0, scale=1)

print("print2:")

print(x)

# 3、產生泊松分布

x = stats.poisson.rvs(0.6, loc=0, size=20)

print("print3:")

print(x)

# 4、t檢驗,驗證兩個樣本值是否顯著不同

# 均值為0,標準差為1的100個正態分佈的隨機數

a = np.random.normal(0, 1, size=100)

# 均值為1,標準差為1的10個正態分佈的隨機數

b = np.random.normal(1, 1, size=10)

print("print4:")

print(stats.ttest_ind(a, b))

# 5、計算方陣的行列式

arr = np.array([[1, 2], [3, 4]])

det = linalg.det(arr)

print("print5:")

print("det = ", det)

# 6、計算方陣的逆

arr = np.array([[1, 2], [3, 4]])

arr_inv = linalg.inv(arr)

print("print6:")

print("arr_inv = ", arr_inv)

# 7、求函式最小值

print("print7:")

print(fmin(f, 0))

if __name__ == '__main__' :

main()

機器學習 3

如果你希望讓學習演算法能夠達到人類的地步,但是還沒有達到,那麼人工檢查一下你的演算法犯的錯誤,會讓你了解接下來該做什麼。這個過程稱為誤差分析。對於乙個貓狗分類的任務,你最終實現了90 的精度,這遠遠沒有達到你的目標。然後你對出錯的分類進行分析,發現他們看起來是有點像貓。或許你的隊友給你提一些建議,增...

機器學習學習小結(3)

1.scikit learn環境 在anaconda常用的命令 在anaconda prompt中鍵入 若在window命令視窗中直接輸入conda list會提示不是內部或外部命令 scikit learn中文文件 建立在numpy,scipy和matplotlib 事先需要安裝 2.anacon...

機器學習 分類3

今天,輸出了cross validation 在每個類別裡面的 模型評估值。主要有下面2步 這是將輸出變成pandas矩陣的函式 from sklearn.metrics import classification report from collections import defaultdict...