統計演算法 數值 線性關係度量

2022-05-17 16:34:16 字數 2509 閱讀 2679

繼續統計演算法,這次也沒什麼特別的,還沒到那麼深入,也是比較基礎的

1、方差-樣本

2、協方差(標準差)-樣本

3、變異係數

4、相關係數

下面是歷史函式

sum_fun() #累加

len_fun() #統計個數

multiply_fun() #累乘

sum_mean_fun() #算數平均數

sum_mean_rate() #算數平均數計算回報

median_fun() #中位數

modes_fun() #眾數

ext_minus_fun() #極差

geom_mean_fun() #幾何平均數

geom_mean_rate() #幾何平均回報

新函式**

import

random

#先生成乙個隨機list,已有函式,不贅述

rand_list = [15.79, 6.83, 12.83, 22.32, 17.92, 6.29, 10.19, 10.13, 24.23, 25.56]

#1、方差-樣本s^2,list中的每個元素減整個list的平均數的平方累加,結果比個數-1,方差總量不-1

defvar_fun(rand_list):

mean_num = sum_mean_fun(rand_list) #計算平均數

len_num = len_fun(rand_list) #計算總量

var_list = [(x-mean_num)**2 for x in rand_list]

var_sum = sum_fun(var_list)

var_num = var_sum/(len_num - 1)

return var_num

#2、協方差(標準差)-樣本s,這個簡單,用方差開平方就可以了

defcovar_fun(rand_list):

var_num = var_fun(rand_list)

covar_num = var_num ** 0.5

return covar_num

#3、變異係數cv,變異程度度量,協方差/算數平均數*100%

#def

trans_coef_fun(rand_list):

covar_num = covar_fun(rand_list)

mean_num = sum_mean_fun(rand_list)

trans_coef_num = covar_num / mean_num

return trans_coef_num

#4、相關係數-樣本r,表示兩個維之間的線性關係,-1 < r < 1,越接近1關係維間的關係越強

#因為是兩個維,因此需要輸入兩維的list,演算法比較麻煩

'''((x1-mean(x))(y1-mean(y))+(x2-mean(x))(y2-mean(y))+...(xn-mean(x))(yn-mean(y)))

/((x1-mean(x))^2+(x2-mean(x))^2+...(xn-mean(x))^2)^0.5*((y1-mean(y))^2+(y2-mean(y))^2+...(yn-mean(y))^2)^0.5

'''x_list =rand_list

y_list = [4.39, 13.84, 9.21, 9.91, 15.69, 14.92, 25.77, 23.99, 8.15, 25.07]

defpearson_fun(x_list,y_list):

x_mean = sum_mean_fun(x_list)

y_mean = sum_mean_fun(y_list)

len_num = len_fun(x_list)

if len_num == len_fun(y_list):

xy_multiply_list = [(x_list[i]-x_mean)*(y_list[i]-y_mean) for i in range(len_num)]

xy_multiply_num = sum_fun(xy_multiply_list)

else:

print 'input list wrong,another input try'

return none

x_covar_son_list = [(x-x_mean)**2 for x in x_list]

y_covar_son_list = [(y-y_mean)**2 for y in y_list]

x_covar_son_num = sum_fun(x_covar_son_list)

y_covar_son_num = sum_fun(y_covar_son_list)

xy_covar_son_multiply_num = (x_covar_son_num ** 0.5) * (y_covar_son_num ** 0.5)

pearson_num = xy_multiply_num / xy_covar_son_multiply_num

return pearson_num

字元統計演算法

一 要求 給定乙個字串,從字串中找出出現次數最多的字元。二 實現 原理 利用陣列來儲存字元出現的次數,利用陣列下標表示對應的字元。1 include 2 include 34 5 要統計的字串 6char s aaffcsdf23aaaaa41678hjjm aaaa 789int main voi...

順序統計演算法 2019 5 25

題目 給定陣列a 0.n 1 試設計乙個演算法,在最壞情況下用n logn次比較找出a 0.n 1 中元素的最大值和次大值。輸入 序列長度 陣列a 輸出 maxnum cmaxnum input 7 1 2 3 4 5 6 7 output 7 6 思想 用分治法將陣列中的數分為兩個序列,遞迴求出左...

統計演算法學習梳理(二)

接下來的幾種模型沒有用,只是在學習書本裡中提到。在此僅僅作為乙個搬運工,然後結合自己的理解慢慢修改。8,邏輯斯諦回歸模型 1,回歸分析。回歸分析本質上就是乙個函式估計的問題,就是找出因變數和自變數之間的因果關係。2,邏輯斯諦回歸 logistic regression 又叫對數回歸,其本質上是線性回...