日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python数据挖掘指南

發(fā)布時(shí)間:2023/12/20 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python数据挖掘指南 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Data Mining in

Python: A Guide

轉(zhuǎn)載原文:https://www.springboard.com/blog/data-mining-python-tutorial/(全英)

譯文轉(zhuǎn)自:https://www.cnblogs.com/zhuPython/p/9466770.html

1、數(shù)據(jù)挖掘和算法

數(shù)據(jù)挖掘是從大型數(shù)據(jù)庫(kù)的分析中發(fā)現(xiàn)預(yù)測(cè)信息的過(guò)程。對(duì)于數(shù)據(jù)科學(xué)家來(lái)說(shuō),數(shù)據(jù)挖掘可能是一項(xiàng)模糊而艱巨的任務(wù) - 它需要多種技能和許多數(shù)據(jù)挖掘技術(shù)知識(shí)來(lái)獲取原始數(shù)據(jù)并成功獲取數(shù)據(jù)。您需要了解統(tǒng)計(jì)學(xué)的基礎(chǔ),以及可以幫助您大規(guī)模進(jìn)行數(shù)據(jù)挖掘的不同編程語(yǔ)言。 ?

本指南將提供一個(gè)示例填充的使用Python的數(shù)據(jù)挖掘簡(jiǎn)介,Python是最廣泛使用的數(shù)據(jù)挖掘工具之一?- 從清理和數(shù)據(jù)組織到應(yīng)用機(jī)器學(xué)習(xí)算法。首先,讓我們更好地理解數(shù)據(jù)挖掘及其完成方式。

1.1、數(shù)據(jù)挖掘定義?

數(shù)據(jù)挖掘的期望結(jié)果是從給定數(shù)據(jù)集創(chuàng)建模型,該模型可以將其洞察力推廣到類似數(shù)據(jù)集。從銀行和信貸機(jī)構(gòu)的自動(dòng)欺詐檢測(cè)中可以看到成功的數(shù)據(jù)挖掘應(yīng)用程序的真實(shí)示例。

如果您的銀行檢測(cè)到您的帳戶存在任何可疑活動(dòng),您的銀行可能會(huì)制定一項(xiàng)提醒您的政策 - 例如在您注冊(cè)的住所以外的州內(nèi)重復(fù)提取ATM或大量購(gòu)物。這與數(shù)據(jù)挖掘有何關(guān)系?數(shù)據(jù)科學(xué)家通過(guò)應(yīng)用算法來(lái)創(chuàng)建該系統(tǒng),通過(guò)將交易與欺詐性和非欺詐性收費(fèi)的歷史模式進(jìn)行比較,對(duì)交易是否具有欺詐性進(jìn)行分類和預(yù)測(cè)。該模型“知道”如果你住在加利福尼亞州圣地亞哥,那么向俄羅斯人口稀少的省份收取的數(shù)千美元購(gòu)買的可能性很大。

這只是數(shù)據(jù)挖掘的眾多強(qiáng)大應(yīng)用之一。數(shù)據(jù)挖掘的其他應(yīng)用包括基因組測(cè)序,社交網(wǎng)絡(luò)分析或犯罪成像 - 但最常見(jiàn)的用例是分析消費(fèi)者生命周期的各個(gè)方面。公司使用數(shù)據(jù)挖掘來(lái)發(fā)現(xiàn)消費(fèi)者的偏好,根據(jù)他們的購(gòu)買活動(dòng)對(duì)不同的消費(fèi)者進(jìn)行分類,并確定對(duì)付高薪客戶的要求 - 這些信息可以對(duì)改善收入流和降低成本產(chǎn)生深遠(yuǎn)影響。

如果您正在努力獲得良好的數(shù)據(jù)集以開(kāi)始分析,我們?yōu)槟牡谝粋€(gè)數(shù)據(jù)科學(xué)項(xiàng)目編譯了19個(gè)免費(fèi)數(shù)據(jù)集。

什么是數(shù)據(jù)挖掘技術(shù)?

有多種方法可以從數(shù)據(jù)集構(gòu)建預(yù)測(cè)模型,數(shù)據(jù)科學(xué)家應(yīng)該了解這些技術(shù)背后的概念,以及如何使用代碼生成類似的模型和可視化。這些技術(shù)包括:

回歸?- 通過(guò)優(yōu)化誤差減少來(lái)估計(jì)變量之間的關(guān)系。

?

具有擬合線性回歸模型的散點(diǎn)圖的示例

分類?- 識(shí)別對(duì)象所屬的類別。一個(gè)例子是將電子郵件分類為垃圾郵件或合法郵件,或者查看某人的信用評(píng)分并批準(zhǔn)或拒絕貸款請(qǐng)求。

聚類分析?- 根據(jù)數(shù)據(jù)的已知特征查找數(shù)據(jù)對(duì)象的自然分組。在營(yíng)銷中可以看到一個(gè)例子,其中分析可以揭示具有獨(dú)特行為的客戶分組 - 這可以應(yīng)用于業(yè)務(wù)戰(zhàn)略決策中。

?散點(diǎn)圖的示例,其中數(shù)據(jù)按群集分段和著色

關(guān)聯(lián)和相關(guān)分析?- 尋找不明顯的變量之間是否存在唯一關(guān)系。一個(gè)例子就是著名的啤酒和尿布案例:在本周末購(gòu)買紙尿褲的男性更有可能購(gòu)買啤酒,因此商店將它們放在一起以增加銷量。

異常值分析?- 檢查異常值以檢查所述異常值的潛在原因和原因。其中一個(gè)例子是在欺詐檢測(cè)中使用離群值分析,并試圖確定規(guī)范之外的行為模式是否是欺詐。?

業(yè)務(wù)數(shù)據(jù)挖掘通常使用事務(wù)和實(shí)時(shí)數(shù)據(jù)庫(kù)執(zhí)行,該數(shù)據(jù)庫(kù)允許輕松使用數(shù)據(jù)挖掘工具進(jìn)行分析。其中一個(gè)例子是在線分析處理服務(wù)器或OLAP,它允許用戶在數(shù)據(jù)服務(wù)器內(nèi)進(jìn)行多維分析。OLAP允許企業(yè)查詢和分析數(shù)據(jù),而無(wú)需下載靜態(tài)數(shù)據(jù)文件,這在數(shù)據(jù)庫(kù)日常增長(zhǎng)的情況下很有用。但是,對(duì)于那些希望學(xué)習(xí)數(shù)據(jù)挖掘和自己練習(xí)的人來(lái)說(shuō),iPython筆記本?非常適合處理大多數(shù)數(shù)據(jù)挖掘任務(wù)。

讓我們來(lái)看看如何使用Python來(lái)使用上述兩種數(shù)據(jù)挖掘算法執(zhí)行數(shù)據(jù)挖掘:回歸和??聚類。


2、在Python中創(chuàng)建回歸模型

我們想解決的問(wèn)題是什么?

我們想要建立變量之間線性關(guān)系的估計(jì),打印相關(guān)系數(shù),并繪制最佳擬合線。對(duì)于這個(gè)分析,我將使用來(lái)自Kaggle的King's County數(shù)據(jù)集中的House Sales的數(shù)據(jù)。如果您對(duì)Kaggle不熟悉,那么它是查找適合數(shù)據(jù)科學(xué)實(shí)踐的數(shù)據(jù)集的絕佳資源。King's County的數(shù)據(jù)包含有關(guān)房?jī)r(jià)和房屋特征的信息 - 讓我們看看我們是否可以估算房?jī)r(jià)與房屋面積之間的關(guān)系。

第一步:為工作提供合適的數(shù)據(jù)挖掘工具?-?安裝Jupyter,熟悉一些模塊。

首先,如果您想要跟隨,請(qǐng)?jiān)谧烂嫔习惭bJupyter。它是一個(gè)免費(fèi)的平臺(tái),為iPython筆記本(.ipynb文件)提供了一個(gè)非常直觀的處理器。請(qǐng)按照以下說(shuō)明進(jìn)行安裝。我在這里所做的一切都將在Jupyter的“Python [Root]”文件中完成。?

我們將使用Python?的Pandas?mo dule來(lái)清理和重構(gòu)我們的數(shù)據(jù)。Pandas是一個(gè)開(kāi)源模塊,用于處理數(shù)據(jù)結(jié)構(gòu)和分析,這對(duì)于使用Python的數(shù)據(jù)科學(xué)家來(lái)說(shuō)無(wú)處不在。它允許數(shù)據(jù)科學(xué)家以任何格式上傳數(shù)據(jù),并提供一個(gè)簡(jiǎn)單的平臺(tái)來(lái)組織,排序和操作該數(shù)據(jù)。如果這是您第一次使用Pandas,請(qǐng)查看有關(guān)基本功能的精彩教程!

在[1]中:

導(dǎo)入 pandas ?as ?pd

In?[1]:

import pandas as pd

import matplotlib.pyplot as plt

import numpy as np

import scipy.stats as stats

import seaborn as sns

from matplotlib import rcParams

%matplotlib inline

%pylab inline

從numpy和matplotlib填充交互式命名空間

在上面的代碼中,我導(dǎo)入了一些模塊,這里是他們所做的細(xì)分:

Numpy?- 科學(xué)計(jì)算的必要包。它包含一個(gè)非常通用的結(jié)構(gòu),用于處理數(shù)組,這是scikit-learn用于輸入數(shù)據(jù)的主要數(shù)據(jù)格式。

Matplotlib?- Python中數(shù)據(jù)可視化的基礎(chǔ)包。該模塊允許創(chuàng)建從簡(jiǎn)單的散點(diǎn)圖到三維等高線圖的所有內(nèi)容。請(qǐng)注意,從matplotlib我們安裝pyplot,這是模塊層次結(jié)構(gòu)中最高級(jí)的狀態(tài)機(jī)環(huán)境(如果這對(duì)你沒(méi)有任何意義,請(qǐng)不要擔(dān)心它,只需確保將它導(dǎo)入到你的筆記本中)。使用'%matplotlib inline'對(duì)于確保所有圖表都顯示在筆記本中至關(guān)重要。?

Scipy?- python中統(tǒng)計(jì)工具的集合。Stats是導(dǎo)入回歸分析函數(shù)的scipy模塊。

讓我們分解如何應(yīng)用數(shù)據(jù)挖掘來(lái)逐步解決回歸問(wèn)題!在現(xiàn)實(shí)生活中,您很可能不會(huì)立即準(zhǔn)備好應(yīng)用機(jī)器學(xué)習(xí)技術(shù)的數(shù)據(jù)集,因此您需要首先清理和組織數(shù)據(jù)。

In?[2]:

df = pd.read_csv('/Users/michaelrundell/Desktop/kc_house_data.csv')

df.head()

OUT [2]:

使用pandas(pd.read_csv)從Kaggle讀取csv文件。

In?[3]:

df.isnull().any()

Out[3]:

id?????????????? False

date???????????? False

price??????????? False

bedrooms???????? False

bathrooms??????? False

sqft_living????? False

sqft_lot???????? False

...

dtype: bool

Checking to see if any of our data has null values. If there were any, we’d drop or filter the null values out.

In?[4]:

df.dtypes

Out[4]:

id???????????????? int64

date????????????? object

price??????????? float64

bedrooms?????????? int64

bathrooms??????? float64

sqft_living??????? int64

sqft_lot?????????? int64

...

dtype: object

檢查每個(gè)變量的數(shù)據(jù)類型。我們想要了解數(shù)據(jù)是否是數(shù)字(int64,float64)或不是(對(duì)象)。?

我使用Pandas從csv文件導(dǎo)入了數(shù)據(jù)框,我做的第一件事是確保它正確讀取。我還使用了“isnull()”函數(shù)來(lái)確保我的數(shù)據(jù)都不能用于回歸。在現(xiàn)實(shí)生活中,單個(gè)列可能具有整數(shù),字符串或NaN形式的數(shù)據(jù),所有這些都在一個(gè)地方 - 這意味著您需要檢查以確保類型匹配并且適合回歸。這個(gè)數(shù)據(jù)集恰好已經(jīng)非常嚴(yán)格地準(zhǔn)備好了,你不會(huì)經(jīng)常在自己的數(shù)據(jù)庫(kù)中看到這些數(shù)據(jù)集。?

下一篇:簡(jiǎn)單的探索性分析和回歸結(jié)果。

讓我們?cè)谶M(jìn)一步了解之前了解數(shù)據(jù),重要的是要查看數(shù)據(jù)的形狀 - 并仔細(xì)檢查數(shù)據(jù)是否合理。損壞的數(shù)據(jù)并不罕見(jiàn),因此最好始終運(yùn)行兩項(xiàng)檢查:首先,使用df.describe()查看分析中的所有變量。其次,使用plt.pyplot.hist()繪制分析所針對(duì)的變量的直方圖。

In?[5]:

df.describe()

out[5]:


價(jià)錢

臥室

浴室

sqft_living

計(jì)數(shù)

21613

21613

21613

21613

意思

540088.10

3.37

2.11

2079.90

STD

367127.20

0.93

0.77

918.44

75000.00

0.00

0.00

290.00

25%

321950.00

3.00

1.75

1427.00

50%

450000.00

3.00

2.25

1910.00

75%

645000.00

4.00

2.50

2550.00

最大

7700000.00

33.00

8.00

13540.00

快速消息:我們正在處理包含21,613個(gè)觀測(cè)資料的數(shù)據(jù)集,平均價(jià)格約為$ 540k,中位數(shù)價(jià)格約為$ 450k,而且平均房屋面積為2080 ft 2

In [19]:

fig = plt.figure(figsize=(12, 6))

sqft = fig.add_subplot(121)

cost = fig.add_subplot(122)

sqft.hist(df.sqft_living, bins=80)

sqft.set_xlabel('Ft^2')

sqft.set_title("Histogram of House Square Footage")

cost.hist(df.price, bins=80)

cost.set_xlabel('Price ($)')

cost.set_title("Histogram of Housing Prices")

plt.show()

?

使用matplotlib(plt),我們打印了兩個(gè)直方圖,以觀察房?jī)r(jià)和平方英尺的分布情況。我們發(fā)現(xiàn)兩個(gè)變量的分布都是右傾的。
現(xiàn)在我們已經(jīng)很好地了解了我們的數(shù)據(jù)集,并且知道了我們?cè)噲D測(cè)量的變量的分布,讓我們做一些回歸分析。首先,我們導(dǎo)入statsmodels以獲得最小二乘回歸估計(jì)函數(shù)。在“普通最小二乘法”模塊會(huì)做大量的工作,當(dāng)涉及到搗弄數(shù)字在Python中回歸。

In?[15]:

import statsmodels.api as sm

from statsmodels.formula.api import ols

當(dāng)您使用只有兩個(gè)變量的OLS編碼生成線性回歸摘要時(shí),這將是您使用的公式:

Reg = ols('因變量?自變量,數(shù)據(jù)幀).fit()

打印(Reg.summary())

當(dāng)我們查看King's縣的房屋價(jià)格和房屋面積時(shí),我們打印出以下摘要報(bào)告:

In?[16]:

m = ols('price ~ sqft_living',df).fit()

print (m.summary())

警告:

[1]標(biāo)準(zhǔn)錯(cuò)誤假設(shè)正確指定了錯(cuò)誤的協(xié)方差矩陣。

[2]條件數(shù)很大,5.63e + 03。這可能表明存在

強(qiáng)多重共線性或其他數(shù)值問(wèn)題。

簡(jiǎn)單線性回歸模型摘要輸出的示例。

當(dāng)您打印OLS回歸的摘要時(shí),可以輕松找到所有相關(guān)信息,包括R平方,t統(tǒng)計(jì)量,標(biāo)準(zhǔn)誤差和相關(guān)系數(shù)。從產(chǎn)量來(lái)看,很明顯平方英尺和房?jī)r(jià)之間存在極其顯著的關(guān)系,因?yàn)榇嬖跇O高的t值144.920,并且? P> | t |?0% - 這實(shí)際上意味著這種關(guān)系由于統(tǒng)計(jì)變異或機(jī)會(huì)而幾乎為零。

這種關(guān)系也有一個(gè)不錯(cuò)的規(guī)模 - 每增加100平方英尺的房子,我們可以預(yù)測(cè)房子平均價(jià)格會(huì)高出28,000美元。可以很容易地調(diào)整此公式以包含多個(gè)自變量,只需遵循以下公式:

Reg = ols(‘Dependent variable ~ivar1 + ivar2 + ivar3… + ivarN, dataframe).fit()

print(Reg.summary())

In?[26]:

m = ols('price ~ sqft_living + bedrooms + grade + condition',df).fit()

print (m.summary())

?

警告:

[1]標(biāo)準(zhǔn)錯(cuò)誤假設(shè)正確指定了錯(cuò)誤的協(xié)方差矩陣。

[2]條件數(shù)很大,2.5e + 04。這可能表明存在

強(qiáng)多重共線性或其他數(shù)值問(wèn)題。

多元線性回歸的一個(gè)例子。

在我們上面的多元回歸輸出中,我們了解到通過(guò)使用額外的自變量,例如臥室的數(shù)量,我們可以提供更好地?cái)M合數(shù)據(jù)的模型,因?yàn)榇嘶貧w的R平方已增加到0.555。這意味著我們能夠通過(guò)添加更多的自變量來(lái)解釋模型中49.3%的變異到55.5%。?

可視化回歸結(jié)果:

使用回歸匯總輸出對(duì)于檢查回歸模型的準(zhǔn)確性以及用于估計(jì)和預(yù)測(cè)的數(shù)據(jù)非常重要 - 但是可視化回歸是以更易消化的格式傳達(dá)回歸結(jié)果的重要步驟。

本節(jié)將完全依賴于Seaborn(sns),它具有非常簡(jiǎn)單和直觀的功能,可以使用散點(diǎn)圖繪制回歸線。我選擇為平方英尺和價(jià)格創(chuàng)建一個(gè)聯(lián)合圖,顯示回歸線以及每個(gè)變量的分布圖。

In?[24]:

sns.jointplot(x="sqft_living", y="price", data=df, kind = 'reg',fit_reg= True, size = 7)

plt.show()

/Users/michaelrundell/anaconda/lib/python3.5/site-packages/statsmodels/nonparametric/kdetools.py:20:VisibleDeprecationWarning:使用非整數(shù)而不是整數(shù)將導(dǎo)致將來(lái)出錯(cuò)

y = X [:m / 2 + 1] + np.r_ [0,X [m / 2 + 1:],0] * 1j

?

?這包含了我的回歸示例,但是在python中還有許多其他方法可以執(zhí)行回歸分析,尤其是在使用某些技術(shù)時(shí)。有關(guān)回歸模型的更多信息,請(qǐng)參閱以下資源。接下來(lái)我們將介紹集群分析。

使用Seaborn可視化線性關(guān)系?- 本文檔提供了具體示例,說(shuō)明如何修改回歸圖,并顯示您可能不知道如何自行編碼的新功能。它還教你如何適應(yīng)不同類型的模型,如二次或邏輯模型。
Python中的統(tǒng)計(jì)信息?- 本教程介紹了在python中執(zhí)行回歸的不同技術(shù),還將教您如何進(jìn)行假設(shè)測(cè)試和交互測(cè)試。

如果您想了解更多可幫助您可視化結(jié)果的數(shù)據(jù)挖掘軟件,您應(yīng)該查看?我們編譯的這31個(gè)免費(fèi)數(shù)據(jù)可視化工具。

3、在Python中創(chuàng)建聚類模型

我們希望為一組數(shù)據(jù)對(duì)象創(chuàng)建自然分組,這些數(shù)據(jù)對(duì)象可能未在數(shù)據(jù)本身中明確說(shuō)明。我們的分析將使用黃石公園著名間歇泉Old Faithful噴發(fā)的數(shù)據(jù)。Barney Govan 從這個(gè)Github存儲(chǔ)庫(kù)中找到了這些數(shù)據(jù)。它只包含兩個(gè)屬性,即噴發(fā)(分鐘)和噴發(fā)長(zhǎng)度(分鐘)之間的等待時(shí)間。只有兩個(gè)屬性可以很容易地創(chuàng)建一個(gè)簡(jiǎn)單的k-means集群模型。

什么是k-means集群模型?

K-Means Cluster模型以下列方式工作 - 所有這些博客都?xì)w功于此:

(1)、從一組隨機(jī)選擇的k個(gè)質(zhì)心(k個(gè)簇的假定中心)開(kāi)始

(2)、根據(jù)最接近的質(zhì)心確定哪個(gè)觀測(cè)點(diǎn)在哪個(gè)群集中(使用平方歐幾里德距離:Σpj= 1(xij-xi'j)2其中p是維數(shù)。

(3)、通過(guò)最小化與群集中每個(gè)觀察的平方歐幾里德距離來(lái)重新計(jì)算每個(gè)群集的質(zhì)心

(4)、重復(fù)2.和3.直到簇的成員(以及因此質(zhì)心的位置)不再改變。

(5)、如果這仍然令人困惑,請(qǐng)查看Jigsaw Academy的這段有用的視頻。現(xiàn)在,讓我們繼續(xù)將此技術(shù)應(yīng)用于我們的Old Faithful數(shù)據(jù)集。

第一步:探索性數(shù)據(jù)分析

您需要安裝一些模塊,包括一個(gè)名為Sci-kit Learn新模塊- 用于Python中機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的工具集(閱讀我們使用Sci-kit進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的教程)。Cluster是sci-kit模塊,它使用聚類算法導(dǎo)入函數(shù),因此從sci-kit導(dǎo)入它。

首先,讓我們將所有必要的模塊導(dǎo)入我們的iPython Notebook并進(jìn)行一些探索性數(shù)據(jù)分析。

In?[18]:

import pandas as pd

import numpy as np

import matplotlib

import matplotlib.pyplot as plt

import sklearn

from sklearn import cluster

%matplotlib inline

faithful = pd.read_csv('/Users/michaelrundell/Desktop/faithful.csv')

faithful.head()

out[18]:


爆發(fā)

等候

0

3.600

79

1

1.800

54

2

3.333

74

3

2.283

62

4

4.533

85

閱讀舊的忠實(shí)csv并導(dǎo)入所有必要的值

我所做的就是從本地目錄中讀取csv,這恰好是我計(jì)算機(jī)的桌面,并顯示了數(shù)據(jù)的前5個(gè)條目。幸運(yùn)的是,我知道這個(gè)數(shù)據(jù)集沒(méi)有缺少或NaN值的列,因此我們可以跳過(guò)此示例中的數(shù)據(jù)清理部分。我們來(lái)看一下數(shù)據(jù)的基本散點(diǎn)圖。

In?[19]:

faithful.columns = ['eruptions', 'waiting']

plt.scatter(faithful.eruptions, faithful.waiting)

plt.title('Old Faithful Data Scatterplot')

plt.xlabel('Length of eruption (minutes)')

plt.ylabel('Time between eruptions (minutes)')

Out[19]:

<matplotlib.text.Text at 0x12a29bba8>

?

?重命名列并使用matplotlib創(chuàng)建一個(gè)簡(jiǎn)單的散點(diǎn)圖

關(guān)于我的過(guò)程的一些快速說(shuō)明:我重新命名了列 - 它們與肉眼看起來(lái)沒(méi)什么不同,但是“等待”列在單詞之前有一個(gè)額外的空間,并且為了防止與進(jìn)一步分析混淆我更改了它確保我不會(huì)忘記或在路上犯任何錯(cuò)誤。 ?

第二步:構(gòu)建集群模型

我們看到的是散點(diǎn)圖,其中有兩個(gè)很容易明顯的聚類,但數(shù)據(jù)集并未將任何觀察標(biāo)記為屬于任何一個(gè)組。接下來(lái)的幾個(gè)步驟將涵蓋視覺(jué)上區(qū)分兩組的過(guò)程。在下面的代碼中,我建立了一些重要的變量并改變了數(shù)據(jù)的格式。

In?[20]:

faith = np.array(faithful)

k = 2

kmeans = cluster.KMeans(n_clusters=k)

kmeans.fit(faith)

labels = kmeans.labels_

centroids = kmeans.cluster_centers_

格式化和功能創(chuàng)建:

1、我將忠實(shí)的數(shù)據(jù)幀讀作一個(gè)numpy數(shù)組,以便sci-kit能夠讀取數(shù)據(jù)。

2、選擇K = 2作為簇的數(shù)量,因?yàn)槲覀冋趪L試創(chuàng)建2個(gè)明確的分組。

3、'kmeans'變量由sci-kit中的集群模塊調(diào)用的輸出定義。我們采用了K個(gè)簇,并將數(shù)據(jù)擬合到數(shù)組'faith'中。

現(xiàn)在我們已經(jīng)設(shè)置了用于創(chuàng)建集群模型的變量,讓我們創(chuàng)建一個(gè)可視化。下面的代碼將繪制按簇顏色的散點(diǎn)圖,并給出最終的質(zhì)心位置。具體的代碼行的說(shuō)明可以在下面找到。

In?[21]:

for i in range(k):

??? # select only data observations with cluster label == i

??? ds = faith[np.where(labels==i)]

??? # plot the data observations

??? plt.plot(ds[:,0],ds[:,1],'o', markersize=7)

??? # plot the centroids

??? lines = plt.plot(centroids[i,0],centroids[i,1],'kx')

??? # make the centroid x's bigger

??? plt.setp(lines,ms=15.0)

??? plt.setp(lines,mew=4.0)

plt.show()

?

創(chuàng)建群集模型的可視化

快速細(xì)分上面的代碼:

1、將數(shù)據(jù)分組為2組的所有工作都在上一段代碼中完成,我們使用命令kmeans.fit(faith)。代碼的這一部分只是創(chuàng)建了顯示它的圖。

2、ds變量只是原始數(shù)據(jù),但重新格式化為包含基于組數(shù)的新顏色標(biāo)簽 - k中的整數(shù)數(shù)。

3、plt.plot調(diào)用x數(shù)據(jù),y數(shù)據(jù),對(duì)象的形狀和圓的大小。

4、其余代碼顯示k-means聚類過(guò)程的最終質(zhì)心,并控制質(zhì)心標(biāo)記的大小和厚度。

在這里我們擁有它 - 一個(gè)簡(jiǎn)單的集群模型。此代碼適用于包含不同數(shù)量的群集,但對(duì)于此問(wèn)題,僅包含2個(gè)群集是有意義的。現(xiàn)在我們已經(jīng)將這些聚類看起來(lái)很好地定義了,我們可以從這兩個(gè)聚類中推斷出意義。他們代表什么?綠色集群:主要由火山爆發(fā)組成,火山爆發(fā)之間的短暫等待時(shí)間可以定義為“弱火或快速射擊”,而藍(lán)色火星群可以稱為“火力爆發(fā)”。

值得注意的是:這種技術(shù)不適用于所有數(shù)據(jù)集 - 數(shù)據(jù)科學(xué)家David Robinson 在他的文章中完美地解釋了K-means聚類“不是免費(fèi)的午餐”。如果您的數(shù)據(jù)具有不均勻的聚類概率,K-means的假設(shè)會(huì)失敗(它們?cè)诿總€(gè)簇中沒(méi)有大致相同的觀察量),或者具有非球形簇。如果您認(rèn)為您的群集問(wèn)題不適用于K-means群集,請(qǐng)查看有關(guān)替代群集建模技術(shù)的這些資源:

Sci-kit群集模塊?-?此文檔有一個(gè)漂亮的圖像,可以直觀地比較scikit-learn中的聚類算法,因?yàn)樗鼈儠?huì)查找不同的散點(diǎn)圖。如果您有一個(gè)類似于其中一個(gè)示例的散點(diǎn)圖,則使用此文檔可以指向正確的算法。它還為您提供了有關(guān)如何以數(shù)學(xué)方式評(píng)估聚類模型的一些見(jiàn)解。

聚類算法?- 這個(gè)來(lái)自斯坦福大學(xué)CS345課程的Powerpoint演示文稿,數(shù)據(jù)挖掘,可以深入了解不同的技術(shù) - 它們?nèi)绾喂ぷ?#xff0c;有效和無(wú)效等等。它是理解聚類在理論層面如何工作的一個(gè)很好的學(xué)習(xí)資源。


結(jié)論

數(shù)據(jù)挖掘包含許多預(yù)測(cè)建模技術(shù),您可以使用各種數(shù)據(jù)挖掘軟件。要學(xué)習(xí)使用Python來(lái)應(yīng)用這些技術(shù)是很困難的 - 將練習(xí)和勤奮應(yīng)用到您自己的數(shù)據(jù)集上是很困難的。在早期,您將遇到無(wú)數(shù)的錯(cuò)誤,錯(cuò)誤消息和包版廣告。?- 但在數(shù)據(jù)挖掘嘗試中保持持久和勤奮。我希望通過(guò)查看上面的集群和線性回歸模型的代碼和創(chuàng)建過(guò)程,您已經(jīng)了解到數(shù)據(jù)挖掘是可以實(shí)現(xiàn)的,并且可以使用有效數(shù)量的代碼完成。

Welcome to Python world! I have a contract in this world! How about you?

掃一掃加我微信,注明:入群,加入微信群

掃一掃關(guān)注開(kāi)源優(yōu)測(cè)公眾號(hào),原創(chuàng)文章首發(fā)平臺(tái)

在公眾號(hào)里回復(fù)一下關(guān)鍵字獲取對(duì)應(yīng)的系列文章

物聯(lián)網(wǎng)appium大數(shù)據(jù)測(cè)試RobotFrameworkPython
自動(dòng)駕駛jmeterseleniumjenkins接口測(cè)試

順手點(diǎn)點(diǎn)點(diǎn)右下角的

總結(jié)

以上是生活随笔為你收集整理的Python数据挖掘指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。