五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

2023國賽數(shù)學(xué)建模思路 - 案例:異常檢測(cè)

2023-08-29 18:02 作者:數(shù)模Assistant君  | 我要投稿

賽題思路

(賽題出來以后第一時(shí)間在群內(nèi)分享)

2023高教社杯全國大學(xué)生數(shù)學(xué)建模競(jìng)賽

資料思路分享Q群:575833716


一、簡介 -- 關(guān)于異常檢測(cè)

異常檢測(cè)(outlier detection)在以下場(chǎng)景:

  • 數(shù)據(jù)預(yù)處理

  • 病毒木馬檢測(cè)

  • 工業(yè)制造產(chǎn)品檢測(cè)

  • 網(wǎng)絡(luò)流量檢測(cè)

等等,有著重要的作用。由于在以上場(chǎng)景中,異常的數(shù)據(jù)量都是很少的一部分,因此諸如:SVM、邏輯回歸等分類算法,都不適用,因?yàn)椋?/span>

監(jiān)督學(xué)習(xí)算法適用于有大量的正向樣本,也有大量的負(fù)向樣本,有足夠的樣本讓算法去學(xué)習(xí)其特征,且未來新出現(xiàn)的樣本與訓(xùn)練樣本分布一致。

以下是異常檢測(cè)和監(jiān)督學(xué)習(xí)相關(guān)算法的適用范圍:

異常檢測(cè)

  • 信用卡詐騙

  • 制造業(yè)產(chǎn)品異常檢

  • 數(shù)據(jù)中心機(jī)器異常檢

  • 入侵檢測(cè)

監(jiān)督學(xué)習(xí)

  • 垃圾郵件識(shí)別

  • 新聞分類

二、異常檢測(cè)算法

在這里插入圖片描述


在這里插入圖片描述

import tushare
from matplotlib import pyplot as plt

df = tushare.get_hist_data("600680")
v = df[-90: ].volume
v.plot("kde")
plt.show()

近三個(gè)月,成交量大于200000就可以認(rèn)為發(fā)生了異常(天量,嗯,要注意風(fēng)險(xiǎn)了……)

在這里插入圖片描述


在這里插入圖片描述

2. 箱線圖分析

import tushare
from matplotlib import pyplot as plt

df = tushare.get_hist_data("600680")
v = df[-90: ].volume
v.plot("kde")
plt.show()

在這里插入圖片描述

大體可以知道,該股票在成交量少于20000,或者成交量大于80000,就應(yīng)該提高警惕啦!

3. 基于距離/密度

典型的算法是:“局部異常因子算法-Local Outlier Factor”,該算法通過引入“k-distance,第k距離”、“k-distance neighborhood,第k距離鄰域”、“reach-distance,可達(dá)距離”、以及“l(fā)ocal reachability density,局部可達(dá)密度 ”和“l(fā)ocal outlier factor,局部離群因子”,來發(fā)現(xiàn)異常點(diǎn)。

用視覺直觀的感受一下,如圖2,對(duì)于C1集合的點(diǎn),整體間距,密度,分散情況較為均勻一致,可以認(rèn)為是同一簇;對(duì)于C2集合的點(diǎn),同樣可認(rèn)為是一簇。o1、o2點(diǎn)相對(duì)孤立,可以認(rèn)為是異常點(diǎn)或離散點(diǎn)?,F(xiàn)在的問題是,如何實(shí)現(xiàn)算法的通用性,可以滿足C1和C2這種密度分散情況迥異的集合的異常點(diǎn)識(shí)別。LOF可以實(shí)現(xiàn)我們的目標(biāo)。

在這里插入圖片描述


在這里插入圖片描述

4. 基于劃分思想

典型的算法是 “孤立森林,Isolation Forest”,其思想是:

假設(shè)我們用一個(gè)隨機(jī)超平面來切割(split)數(shù)據(jù)空間(data space), 切一次可以生成兩個(gè)子空間(想象拿刀切蛋糕一分為二)。之后我們?cè)倮^續(xù)用一個(gè)隨機(jī)超平面來切割每個(gè)子空間,循環(huán)下去,直到每子空間里面只有一個(gè)數(shù)據(jù)點(diǎn)為止。直觀上來講,我們可以發(fā)現(xiàn)那些密度很高的簇是可以被切很多次才會(huì)停止切割,但是那些密度很低的點(diǎn)很容易很早的就停到一個(gè)子空間了。

這個(gè)的算法流程即是使用超平面分割子空間,然后建立類似的二叉樹的過程:

在這里插入圖片描述

import numpy as np
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest

rng = np.random.RandomState(42)

# Generate train data
X = 0.3 * rng.randn(100, 2)
X_train = np.r_[X + 1, X - 3, X - 5, X + 6]
# Generate some regular novel observations
X = 0.3 * rng.randn(20, 2)
X_test = np.r_[X + 1, X - 3, X - 5, X + 6]
# Generate some abnormal novel observations
X_outliers = rng.uniform(low=-8, high=8, size=(20, 2))

# fit the model
clf = IsolationForest(max_samples=100*2, random_state=rng)
clf.fit(X_train)
y_pred_train = clf.predict(X_train)
y_pred_test = clf.predict(X_test)
y_pred_outliers = clf.predict(X_outliers)

# plot the line, the samples, and the nearest vectors to the plane
xx, yy = np.meshgrid(np.linspace(-8, 8, 50), np.linspace(-8, 8, 50))
Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)

plt.title("IsolationForest")
plt.contourf(xx, yy, Z, cmap=plt.cm.Blues_r)

b1 = plt.scatter(X_train[:, 0], X_train[:, 1], c='white')
b2 = plt.scatter(X_test[:, 0], X_test[:, 1], c='green')
c = plt.scatter(X_outliers[:, 0], X_outliers[:, 1], c='red')
plt.axis('tight')
plt.xlim((-8, 8))
plt.ylim((-8, 8))
plt.legend([b1, b2, c],
? ? ? ? ? ["training observations",
? ? ? ? ? ?"new regular observations", "new abnormal observations"],
? ? ? ? ? loc="upper left")
plt.show()

在這里插入圖片描述

建模資料

資料分享: 最強(qiáng)建模資料

在這里插入圖片描述


在這里插入圖片描述


2023高教社杯全國大學(xué)生數(shù)學(xué)建模競(jìng)賽

資料思路分享Q群:575833716


2023國賽數(shù)學(xué)建模思路 - 案例:異常檢測(cè)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
江城| 兴安盟| 尼玛县| 阳山县| 双江| 鄂温| 日照市| 涟源市| 禹州市| 沂源县| 无锡市| 右玉县| 元阳县| 临海市| 双城市| 宝山区| 濉溪县| 玛沁县| 蓬溪县| 廊坊市| 响水县| 特克斯县| 岢岚县| 长宁区| 澳门| 太仓市| 石门县| 唐海县| 白城市| 建始县| 田东县| 贵阳市| 石泉县| 宜君县| 兴义市| 霍城县| 银川市| 屏东市| 东安县| 闽侯县| 德安县|