導航:首頁 > 電影資訊 > 如何對電影評分進行數據挖掘

如何對電影評分進行數據挖掘

發布時間:2022-07-18 02:52:58

如何評價一個數據挖掘軟體,什麼是最關鍵的謝謝了,大神幫忙啊

一、數據挖掘工具分類 數據挖掘工具根據其適用的范圍分為兩類:專用挖掘工具和通用挖掘工具。 專用數據挖掘工具是針對某個特定領域的問題提供解決方案,在涉及演算法的時候充分考慮了數據、需求的特殊性,並作了優化。對任何領域,都可以開發特定的數據挖掘工具。例如,IBM公司的AdvancedScout系統針對NBA的數據,幫助教練優化戰術組合。特定領域的數據挖掘工具針對性比較強,只能用於一種應用;也正因為針對性強,往往採用特殊的演算法,可以處理特殊的數據,實現特殊的目的,發現的知識可靠度也比較高。 通用數據挖掘工具不區分具體數據的含義,採用通用的挖掘演算法,處理常見的數據類型。通用的數據挖掘工具不區分具體數據的含義,採用通用的挖掘演算法,處理常見的數據類型。例如,IBM公司Almaden研究中心開發的QUEST系統,SGI公司開發的MineSet系統,加拿大SimonFraser大學開發的DBMiner系統。通用的數據挖掘工具可以做多種模式的挖掘,挖掘什麼、用什麼來挖掘都由用戶根據自己的應用來選擇。 二、數據挖掘工具選擇需要考慮的問題 數據挖掘是一個過程,只有將數據挖掘工具提供的技術和實施經驗與企業的業務邏輯和需求緊密結合,並在實施的過程中不斷的磨合,才能取得成功,因此我們在選擇數據挖掘工具的時候,要全面考慮多方面的因素,主要包括以下幾點: (1) 可產生的模式種類的數量:分類,聚類,關聯等 (2) 解決復雜問題的能力 (3) 操作性能 (4) 數據存取能力 (5) 和其他產品的介面 三、數據挖掘工具介紹: 1.QUEST QUEST是IBM公司Almaden研究中心開發的一個多任務數據挖掘系統,目的是為新一代決策支持系統的應用開發提供高效的數據開采基本構件。系統具有如下特點: 提供了專門在大型資料庫上進行各種開採的功能:關聯規則發現、序列模式發現、時間序列聚類、決策樹分類、遞增式主動開采等。 各種開采演算法具有近似線性計算復雜度,可適用於任意大小的資料庫。 演算法具有找全性,即能將所有滿足指定類型的模式全部尋找出來。 為各種發現功能設計了相應的並行演算法。 2.MineSet MineSet是由SGI公司和美國Standford大學聯合開發的多任務數據挖掘系統。MineSet集成多種數據挖掘演算法和可視化工具,幫助用戶直觀地、實時地發掘、理解大量數據背後的知識。MineSet有如下特點: MineSet以先進的可視化顯示方法聞名於世。 支持多種關系資料庫。可以直接從Oracle、Informix、Sybase的表讀取數據,也可以通過SQL命令執行查詢。 多種數據轉換功能。在進行挖掘前,MineSet可以去除不必要的數據項,統計、集合、分組數據,轉換數據類型,構造表達式由已有數據項生成新的數據項,對數據采樣等。 操作簡單、支持國際字元、可以直接發布到Web。 3.DBMiner DBMiner是加拿大SimonFraser大學開發的一個多任務數據挖掘系統,它的前身是DBLearn。該系統設計的目的是把關系資料庫和數據開採集成在一起,以面向屬性的多級概念為基礎發現各種知識。DBMiner系統具有如下特色: 能完成多種知識的發現:泛化規則、特性規則、關聯規則、分類規則、演化知識、偏離知識等。 綜合了多種數據開采技術:面向屬性的歸納、統計分析、逐級深化發現多級規則、元規則引導發現等方法。 提出了一種互動式的類SQL語言——數據開采查詢語言DMQL。 能與關系資料庫平滑集成。 實現了基於客戶/伺服器體系結構的Unix和PC(Windows/NT)版本的系統。 4.Intelligent Miner 由美國IBM公司開發的數據挖掘軟體Intelligent Miner是一種分別面向資料庫和文本信息進行數據挖掘的軟體系列,它包括Intelligent Miner for Data和Intelligent Miner for Text。Intelligent Miner for Data可以挖掘包含在資料庫、數據倉庫和數據中心中的隱含信息,幫助用戶利用傳統資料庫或普通文件中的結構化數據進行數據挖掘。它已經成功應用於市場分析、詐騙行為監測及客戶聯系管理等;Intelligent Miner for Text允許企業從文本信息進行數據挖掘,文本數據源可以是文本文件、Web頁面、電子郵件、Lotus Notes資料庫等等。 5.SAS Enterprise Miner 這是一種在我國的企業中得到採用的數據挖掘工具,比較典型的包括上海寶鋼配礦系統應用和鐵路部門在春運客運研究中的應用。SAS Enterprise Miner是一種通用的數據挖掘工具,按照"抽樣--探索--轉換--建模--評估"的方法進行數據挖掘。可以與SAS數據倉庫和OLAP集成,實現從提出數據、抓住數據到得到解答的"端到端"知識發現。 6.SPSS Clementine SPSS Clementine是一個開放式數據挖掘工具,曾兩次獲得英國政府SMART 創新獎,它不但支持整個數據挖掘流程,從數據獲取、轉化、建模、評估到最終部署的全部過程,還支持數據挖掘的行業標准--CRISP-DM。Clementine的可視化數據挖掘使得"思路"分析成為可能,即將集中精力在要解決的問題本身,而不是局限於完成一些技術性工作(比如編寫代碼)。提供了多種圖形化技術,有助理解數據間的關鍵性聯系,指導用戶以最便捷的途徑找到問題的最終解決辦法。 7.資料庫廠商集成的挖掘工具 SQL Server 2000包含由Microsoft研究院開發的兩種數據挖掘演算法:Microsoft決策樹和Microsoft聚集。此外,SQL Server 2000中的數據挖掘支持由第三方開發的演算法。 Microsoft決策樹演算法:該演算法基於分類。演算法建立一個決策樹,用於按照事實數據表中的一些列來預測其他列的值。該演算法可以用於判斷最傾向於單擊特定標題(banner)或從某電子商務網站購買特定商品的個人。 Microsoft聚集演算法:該演算法將記錄組合到可以表示類似的、可預測的特徵的聚集中。通常這些特徵可能是隱含或非直觀的。例如,聚集演算法可以用於將潛在汽車買主分組,並創建對應於每個汽車購買群體的營銷活動。,SQL Server 2005在數據挖掘方面提供了更為豐富的模型、工具以及擴展空間。包括:可視化的數據挖掘工具與導航、8種數據挖掘演算法集成、DMX 、XML/A、第三方演算法嵌入支持等等。 Oracle Data Mining (ODM) 是 Oracle 資料庫 10g 企業版的一個選件,它使公司能夠從最大的資料庫中高效地提取信息並創建集成的商務智能應用程序。數據分析人員能夠發現那些隱藏在數據中的模式和內涵。應用程序開發人員能夠在整個機構范圍內快速自動提取和分發新的商務智能 — 預測、模式和發現。ODM 針對以下數據挖掘問題為 Oracle 資料庫 10g 提供支持:分類、預測、回歸、聚類、關聯、屬性重要性、特性提取以及序列相似性搜索與分析 (BLAST)。所有的建模、評分和元數據管理操作都是通過 Oracle Data Mining 客戶端以及 PL/SQL 或基於 Java 的 API 來訪問的,並且完全在關系資料庫內部進行。 IBM Intelligent Miner 通過其世界領先的獨有技術,例如典型數據集自動生成、關聯發現、序列規律發現、概念性分類和可視化呈現,它可以自動實現數據選擇、數據轉換、數據發掘和結果呈現這一整套數據發掘操作。若有必要,對結果數據集還可以重復這一過程,直至得到滿意結果為止。現在,IBM的 Intelligent Miner已形成系列,它幫助用戶從企業數據資產中識別和提煉有價值的信息。它包括分析軟體工具 ----Intelligent Miner for Data和IBM Intelligent Miner forText ,幫助企業選取以前未知的、有效的、可行的業務知識---- 如客戶購買行為,隱藏的關系和新的趨勢,數據來源可以是大型資料庫和企業內部或Internet 上的文本數據源。然後公司可以應用這些信息進行更好、更准確的決策,獲得競爭優勢。

記得採納啊

Ⅱ 求大神簡述一下LLE演算法(或降維演算法)在模式識別和數據挖掘中是怎樣被應用的呢,謝謝

  1. 關於LLE演算法具體的理論部分你可參考http://www.pami.sjtu.e.cn/people/xzj/introcelle.htm

  2. Locally linear embedding (LLE),使用這種演算法可以進行非線性降維,關鍵是其能夠使降維後的數據保持原有拓撲結構

    先給出一張下面演算法得到的圖 ,圖中第一幅

    LLE演算法可以歸結為三步:

    (1)尋找每個樣本點的k個近鄰點;

    (2)由每個樣本點的近鄰點計算出該樣本點的局部重建權值矩陣;

    (3)由該樣本點的局部重建權值矩陣和其近鄰點計算出該樣本點的輸出值。

  3. 為原始數據,第三個為降維後的數據,可以看出處理後的低維數據保持了原有的拓撲結構。

  4. 另,本人對LLE演算法不是很熟悉,在此介紹一下其他降維演算法的使用,以SVD演算法為例。

    電影推薦。

    (1)假設現在有一個用戶和電影評分的二維矩陣,矩陣內容是用戶對電影的評分,現有得知某個用戶對部分電影的評分,由此為該用戶推薦他可能喜歡的電影。

    (2)假設用戶有100W,電影有100W部,那麼對於任意一種推薦演算法來說,這個數據量都很大,該問題無法在單機上進行運算解決;

    (3)這100W維特徵中必然存在一些幾乎不重要的特徵,這時,我們就需要用降維演算法進行降維,降維的目的就是去掉大量的不重要的特徵,以簡化運算;

    (4)在此例中,可以使用SVD(或SVD++)演算法對矩陣進行降維

圖片相似度

(1)通常,進行圖片相似度判斷首先會將圖片通過傅里葉變換轉換成數值代表的矩陣,矩陣代表著該圖片,一般來說矩陣維數越高越精確

(2)同樣,維數過高的情況下,相似度計算成本很高,因此同樣需要降維,在圖片相似度識別中常用的降維演算法是PCA演算法;


總之,降維的目的就是減少特徵的維數,減少運算的成本。

以上皆為我的拙見,如有疑義請指正。

Ⅲ 豆瓣電影排名考前的,包含電影名字、導演、評分、評分人數、主演、編劇,有什麼好的數據採集方式

可以根據你的需求採集豆瓣上的公開數據,也可以定製開發爬蟲,某寶上的「楚江數據」可以快速解決;

Ⅳ 數據挖掘,有什麼辦法能從豆瓣影評中獲取導演名字

中文的自然語言處理現在有一些主體識別的工具了,你可以查查看,就是那種可以從文檔中識別出重要的人、物、事對應的詞的工具。但是這也只能停留在把可能的人名挑出來,至於是不是導演,除非前面有提示是導演,否則你只能單獨建立一個導演列表的資料庫,然後匹配一下看看挑出來的人名是不是導演

Ⅳ 數據挖掘,情感分析,深度學習具體步驟是

有兩大類,一類是主觀性:主觀、客觀、中性;一類是情感傾向:褒義、貶義、中性。
文本分析的話,主要是對詞、句子中觀點的挖掘。
你所說的機器學習法,現在基本用於對電影觀點的打分系統吧。基本上就是利用分類計數,對文檔中存在的情感進行分類的。
就我個人理解而言,我認為機器學習法只是情感文本分析的方法論之一,至於數據挖掘,也是通過對文檔的數據收取,進行情感分析的。也是對情感文本分析的方法論之一。
所以,情感分析是主體的話,文本分類、機器學習、數據挖掘都是方式方法。這些方法可以共同應用在一個情感分析中,也可以分別獨立存在。
目前英文類的文本情感分析比較多,中文類的相對少一點,你要做這方面的研究路漫漫其修遠啊。嘿嘿。

Ⅵ 已知某網站用戶對電影評分數據(滿分5分)。應用KNN演算法預測哪位用戶適合給小張推薦電影

已知某網站用戶對電影評分數據(滿分5分)。應用KNN演算法預測哪位用戶適合給小張推薦電影?
不要把手機關機

怎麼用python抓取豆瓣上用戶對電影的評分

#!/usr/bin/env python2.7# encoding=utf-8"""
爬取豆瓣電影TOP250 - 完整示例代碼
"""import codecsimport requestsfrom bs4 import BeautifulSoup

DOWNLOAD_URL = 'http://movie.douban.com/top250/'def download_page(url):
return requests.get(url, headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
}).contentdef parse_html(html):
soup = BeautifulSoup(html)
movie_list_soup = soup.find('ol', attrs={'class': 'grid_view'})

movie_name_list = [] for movie_li in movie_list_soup.find_all('li'):
detail = movie_li.find('div', attrs={'class': 'hd'})
movie_name = detail.find('span', attrs={'class': 'title'}).getText()

movie_name_list.append(movie_name)

next_page = soup.find('span', attrs={'class': 'next'}).find('a') if next_page: return movie_name_list, DOWNLOAD_URL + next_page['href'] return movie_name_list, Nonedef main():
url = DOWNLOAD_URL with codecs.open('movies', 'wb', encoding='utf-8') as fp: while url:
html = download_page(url)
movies, url = parse_html(html)
fp.write(u'{movies}\n'.format(movies='\n'.join(movies)))if __name__ == '__main__':
main()

Ⅷ 數據挖掘 | 數據理解和預處理

數據挖掘 | 數據理解和預處理
小編遇到過很多人(咳咳,請不要對號入座),拿到數據後不管三七二十一,先丟到模型中去跑,管它具體什麼樣呢,反正「大數據」嘛,總能整出點東西來。
但就像上次說過的,「大數據」很有可能帶來「大錯誤」!所以在數據挖掘工作開始前,認真的理解數據、檢查數據,對數據進行預處理是至關重要的。
很多人說,數據准備工作真是個「體力活」,耗時耗力不說,還異常的枯燥無味。這點小編承認,建模之前的數據處理確實是平淡的,它往往不需要多高的智商,多牛的編程技巧,多麼高大上的統計模型。
但是,它卻能時時觸發你的興奮點,因為它需要足夠的耐心和細心,稍不留神就前功盡棄。
在這次的內容里,小編首先會從「數據理解」、「變數類型」和「質量檢查」三個方面進行闡述,然後會以一個自己做過的實際數據為例進行展示。
一、數據理解
拿到數據後要做的第一步就是理解數據。
什麼是理解數據呢?不是簡單看下有多少Excel表,有多少行,多少列,而是要結合自己的分析目標,帶著具體的業務需求去看。
首先,我們需要明確數據記錄的詳細程度,比方說某個網站的訪問量數據是以每小時為單位還是每天為單位;一份銷售數據記錄的是每家門店的銷售額還是每個地區的總銷售額。
其次,我們需要確定研究群體。研究群體的確定一定和業務目標是密切相關的。
比方說,如果我們想研究用戶對產品的滿意度與哪些因素有關,就應該把購買該產品的所有客戶作為研究群體;如果我們想研究用戶的購買行為受哪些因素影響,就應該同時考察購買人群和非購買人群,在兩類人群的對比中尋找關鍵因素。
研究群體的確定有時也和數據的詳細程度有關。
比如我們想研究「觀眾影評」對「電影票房」的影響,我們既可以把「每部電影」看成一個個體,研究「影評總數」對「電影總票房」的影響,也可以把「每部電影每天的票房」看成一個個體,研究「每天的影評數」對「每天的電影票房」的影響。
具體選擇哪一種取決於我們手上有什麼樣的數據,如果只有總票房和總影評數的數據,那我們只能選擇第一種;如果有更詳細的數據,那就可以考慮第二種方案。
需要注意的是,這兩種方案還會影響我們對於模型的選擇。
例如,如果研究「每天的影評數」對「每天電影票房」的影響,那每部電影又被細分為很多天,同一部電影不同時間的票房會有較高的相似性,這就形成了一種層次結構,可以考慮使用層次模型(hierarchical model)進行分析。
最後,當我們確定了研究目標和研究群體後,我們需要逐一理解每個變數的含義。有些變數和業務目標明顯無關,可以直接從研究中剔除。
有些變數雖然有意義,但是在全部樣本上取值都一樣,這樣的變數就是冗餘變數,也需要從研究中剔除。
還有一些變數具有重復的含義,如「省份名稱」和「省份簡稱」,這時只需要保留一個就可以了。
二、變數類型
所有變數按其測量尺度可以分成兩大類,一類是「分類變數」,一類是「數值變數」。不同類型的變數在處理方法和後期的模型選擇上會有顯著差別。
【分類變數】
分類變數又稱屬性變數或離散變數,它的取值往往用有限的幾個類別名稱就可以表示了,例如「性別」,「教育程度」,「收入水平」,「星期幾」等。細分的話,分類變數又可分為兩類,一類是「名義變數」,即各個類別間沒有順序和程度的差別,就像「手機系統」中ios和安卓並沒有明顯的好壞差別,「電影類型」中「動作片」和「科幻片」也都是一樣的,說不上哪個更好或更差。
另外一類是定序變數,即不同類別之間存在有意義的排序,如「空氣污染程度」可以用「差、良、優」來表示、「教育程度」可以用「小學、初中、高中、大學」來表示。
當研究的因變數是分類變數時,往往對應特定的分析方法,我們在後面的章節會陸續講到,這里暫且不談。
當研究中的自變數是分類變數時,也會限制模型選擇的范圍。有些數據挖掘模型可以直接處理分類自變數,如決策樹模型;但很多數據挖掘模型不能直接處理分類自變數,如線性回歸、神經網路等,因此需要將分類變數轉換成數值變數。
對於定序自變數,最常用的轉換方法就是按照類別程度將其直接轉換成數值自變數,例如將空氣污染程度 「差、良、優」轉換為「1,2,3」。
對於名義自變數,最常用的轉換方法就是構造0-1型啞變數。例如,對於「性別」,可以定義「1=男,0=女」。
當某個名義變數有K個類別取值時,則需要構造K-1個啞變數。例如教育程度「小學,初中,高中,大學及以上」,可以構造三個啞變數分別為:x1:1=小學,0=其它;x2:1=初中,0=其它;x3:1=高中,0=其它。當x1,x2,x3三個啞變數取值都為0時,則對應著「大學及以上」。
需要注意的是,有時候名義變數的取值太多,會生成太多的啞變數,這很容易造成模型的過度擬合。
這時可以考慮只把觀測比較多的幾個類別單獨拿出來,而把剩下所有的類別都歸為「其它」。
例如,中國一共包含56個民族,如果每個民族都生成一個啞變數就會有55個,這時我們可以只考慮設置「是否為漢族」這一個0-1啞變數。
【數值變數】
我們再來看看數值變數。數值變數就是用數值描述,並且可以直接進行代數運算的變數,如「銷售收入」、「固定資本」、「評論總數」、「訪問量」、「學生成績」等等都是數值變數。
需要注意的是,用數值表示的變數不一定就是數值型變數,只有在代數運算下有意義的變數才是數值型變數。
例如財務報表的年份,上市時間等,雖然也是用數值表示的,但我們通常不將它們按照數值型變數來處理。
上面我們講到,分類變數通常要轉換成數值型變數,其實有些時候,數值型變數也需要轉換成分類變數,這就用到了「數據分箱」的方法。
為什麼要進行數據分箱呢?通常有以下幾個原因:
1. 數據的測量可能存在一定誤差,沒有那麼准確,因此按照取值范圍轉換成不同類別是一個有效的平滑方法;
2.有些演算法,如決策樹模型,雖然可以處理數值型變數,但是當該變數有大量不重復的取值時,使用大於、小於、等於這些運算符時會考慮很多的情況,因此效率會很低,數據分箱的方法能很好的提高演算法效率;
3.有些模型演算法只能處理分類型自變數(如關聯規則),因此也需要將數值變數進行分箱處理。
數據分箱後,可以使用每個分箱內的均值、中位數、臨界值等作為這個類別的代表值,也可以直接將不同取值范圍定義成不同的類別,如:將污染程度劃分後定義為「低、中、高」等。
那如何進行數據分箱呢?常用的數據分箱的方法有:等寬分箱(將變數的取值范圍劃分成等寬的幾個區間)、等頻分箱(按照變數取值的分位數進行劃分)、基於k均值聚類的分箱(將所有數據進行k均值聚類,所得的不同類別即為不同的分箱),還有一些有監督分箱方法,如:使分箱後的結果達到最小熵或最小描述長度等。這里不詳細介紹了,有興趣的童鞋可以自行網路。
三、質量檢查
對數據中的各個變數有了初步了解後,我們還需要對數據進行嚴格的質量檢查,如果數據質量不過關,還需要進行數據的清洗或修補工作。
一般來說,質量檢查包括檢查每個變數的缺失程度以及取值范圍的合理性。
【缺失檢查】
原始數據中經常會存在各種各樣的缺失現象。
有些指標的缺失是合理的,例如顧客只有使用過某個產品才能對這個產品的滿意度進行評價,一筆貸款的抵押物中只有存在房地產,才會記錄相應的房地產的價值情況等。
像這種允許缺失的變數是最難搞的,因為我們很難判斷它的缺失是合理的,還是由於漏報造成的。
但無論哪種情況,如果變數的缺失率過高,都會影響數據的整體質量,因為數據所反映的信息實在太少,很難從中挖掘到有用的東西。
對於不允許缺失的變數來說,如果存在缺失情況,就必須進行相應的處理。如果一個變數的缺失程度非常大,比方說達到了70%,那就考慮直接踢掉吧,估計沒救了。
如果缺失比例還可以接受的話,可以嘗試用缺失值插補的方法進行補救。
插補的目的是使插補值能最大可能的接近其真實的取值,所以如果可以從其他途徑得到變數的真實值,那一定優先選擇這種方法。
比如某個公司的財務信息中缺失了「最終控制人類型」和「是否國家控股」這兩個取值,這些可以通過網上的公開信息得到真實值;再比如缺失了「凈利潤率」這個指標的取值,但是卻有「凈利潤」和「總收入」的取值,那就可以通過變數間的關系得到相應的缺失值,即凈利潤率=凈利潤/總收入。
當然,更多的時候,我們無法得到缺失值的真實信息,這時就只能借用已有的數據來進行插補了。
對數值變數來說,可以用已觀測值的均值、中位數來插補缺失值;對分類型變數來說,可以用已觀測數據中出現比例最高的類別取值來進行插補。
這些方法操作起來非常簡單,但它們都是對所有缺失值賦予了相同的取值,所以當缺失比例較大時,可能會扭曲被插補變數與其餘變數的關系。
更復雜一點的,我們可以選擇模型插補方法,即針對被插補變數和其它自變數之間的關系建立統計模型(如回歸、決策樹等),將模型預測值作為插補值。
如何處理缺失值是一個很大的研究課題,我們這里只是介紹了最簡單可行的方法,有興趣的讀者可以參閱Little和Rubin 2002年的專著「Statistical Analysis with Missing Data」。
【變數取值合理性檢查】
除了缺失外,我們還要考察每個變數的取值合理性。每個變數都會有自己的取值范圍,比如「用戶訪問量」、「下載次數」一定是非負的,「投資收益率」一定在0~1之間。通過判斷變數的取值是否超出它應有的取值范圍,可以簡單的對異常值進行甄別。
除了根據變數的取值范圍來檢查變數質量外,還可以根據變數之間的相互關系進行判斷。例如一家公司的「凈利潤率」不應該大於「總利潤率」等。
只有通過了各個方面檢測的數據才是一份高質量的數據,才有可能帶來有價值的模型結果。
四、實例分析——電影票房分析
最後,我們給出一個實例分析。在這個例子中,我們的目標是研究電影哪些方面的特徵對電影票房有影響。
我們有兩方面的數據,一是描述電影特徵的數據,二是描述電影票房的數據。
由於我們關注的是北美的票房市場,所以描述電影特徵的數據可以從IMDB網站得到,它是一個關於演員、電影、電視節目、電視明星和電影製作的在線資料庫,裡面可以找到每部上映電影的眾多信息;電影每天的票房數據可以從美國權威的票房網站Box Office Mojo得到,上面記錄了每部電影上映期間內每天的票房數據。
我們將從IMDB得到的數據放到「movieinfor.csv」文件中,將從Box Office Mojo中得到的數據放到「boxoffice.csv」文件中。
這里,我們以2012年北美票房市場最高的前100部電影為例進行講解。下表給出了這兩個數據集中包含的所有變數以及相應的解釋。
在這兩個數據中,movieinfor.csv數據的記錄是精確到每部電影的,而boxoffice.csv數據精確到了每部電影中每天的票房數據,是精確到天的。上表中給出的變數中,除了電影名稱和ID外,「電影類型」「MPAA評級」(美國電影協會對電影的評級)和「星期幾」是分類型變數;「放映時長」、「製作預算」、「電影每天的票房」和「每天放映的影院數」是數值型變數。兩份數據都不存在缺失值。
我們首先對兩個數據集分別進行變數預處理,然後再根據電影ID將兩個數據整合到一起。下面給出了每個變數的處理方法:
【電影類型】
電影類型是一個分類變數。在這個變數中我們發現每部電影都不止一個類型,例如「The Dark Knight Rises」這部電影就有「Action」、「Crime」和「Thriller」三個類型,並且它們以「|」為分隔符寫在了一起。
同時,不同電影之間可能有相同的類型,也可能有不同的類型,例如票房排名第二的電影「Skyfall」,它的類型是「Action |Adventure |Thriller」。
因此,我們首先需要做的是把每部電影所屬的類型逐一取出來,然後將所有出現過的類型分別形成一個0-1啞變數,如果這部電影在某個類型上出現了,則相應變數的取值就是1,否則是0.
通過上面一步,我們知道這個數據集中出現過的所有電影類型一共有11個。
那是不是按照之前所講的,應該把它轉換為10個啞變數呢?這里需要注意的是,所有的電影類型之間並不是互斥的(即有了action,就不能有其他的類型),所以我們無需因為共線性的原因去掉其中一個。
也就是說,如果把每一個電影類型單獨作為一個獨立的變數,可以衍生出11個新的0-1變數,這完全沒有問題。但11個變數未免有點過多,所以我們根據不同電影類型的頻數分布情況,只把出現次數明顯較多的類型單獨拿出來,最終生成了6個0-1型變數,分別為Adventure,Fantasy,Comedy,Action,Animation,Others。
【MPAA評級】
對於這個分類型變數,我們首先可以看一下數據中它所包含的全部取值,發現一共有「PG」,「PG-13」和「R」三個。
和上面的電影類型(Genre)不同,對於一部電影而言,它只能有一個MPAA取值。因此,在MPAA變數中,我們需要選擇一個作為基準,將另外兩個構造成啞變數。
例如,我們以「PG」為基準,構造的兩個啞變數分別為PG13和R,如果這兩個啞變數的取值同時為0,那就相當於電影的MPAA評級是PG。
【放映當天是星期幾】
這個變數同MPAA評級一樣,每部電影只能有一個取值。
如果它在星期一到星期日上都有取值的話,我們可以衍生出6個0-1型啞變數。
因為這里我們更關注周末和非周末對電影票房的影響,而並不關注具體是哪一天,所以我們將其進一步概括成一個變數,即「是否是周末」。
【放映時長和製作預算】
放映時長和製作預算這兩個變數都是取值大於0的數值型變數,我們可以分別檢查它們的取值是否在合理的范圍內,然後直接保留它們的數值信息。
同時,對「製作預算」而言,假設我們這里關心的不是製作預算的具體數值,而是「小成本電影」和「大成本電影」的票房差異,那我們就可以將這個數值型變數進行分箱處理,轉換為一個0-1型的分類變數,即 「是否為小成本電影」。
在決定按照什麼標准來劃分是否為小成本電影時,我們根據之前文獻里的研究結果,將製作預算在100 million以下的電影看成是小成本電影。
上述所有變數的處理過程都可以使用R中最基本的語句(table,rep,which等)完成,由於篇幅限制,小編這里就不列出詳細的code了,大家感興趣的話,可以閱讀狗熊會的「R語千尋」系列(戳這里),相信會在R語言的學習上受到更多啟發。
最後,我們將所有新生成的變數按照電影ID整合到一起,就大功告成啦。
五、總結
最後總結一下,小編在這次內容中向大家介紹了拿到數據後的數據理解和預處理工作,內容雖然不難,但同樣需要我們認真對待。就好像生活一樣,只有踏踏實實走好前面的路,才有可能迎接後面的高潮迭起!

Ⅸ 數據分析的步驟是什麼

1.問題定義
比較典型的場景是我們需要針對企業的數據進行分析,比如公司通常會有銷售數據、用戶數據、運營數據、產品生產數據……你需要從這些數據里獲得哪些有用的信息,對策略的制定進行指導呢?又比如你需要做的是一份市場調研或者行業分析,那麼你需要知道你需要獲得關於這個行業的哪些信息。
首先你需要確定去分析的問題是什麼?你想得出哪些結論?
比如某地區空氣質量變化的趨勢是什麼?
王者榮耀玩家的用戶畫像是什麼樣的?經常消費的是那類人?
影響公司銷售額增長的關鍵因素是什麼?
生產環節中影響產能和質量的核心指標是什麼?
如何對分析用戶畫像並進行精準營銷?
如何基於歷史數據預測未來某個階段用戶行為?
這些問題可能來源於你已有的經驗和知識。比如你已經知道每周的不同時間用戶購買量不一樣,那麼你可以通過分析得出銷量和時間的精確關系,從而精準備貨。又比如你知道北京最近幾年的空氣質量是在變壞的,可能的因素是工廠排放、沙塵暴、居民排放、天氣因素等,那麼在定義問題的時候你就需要想清楚,需要針對哪些因素進行重點分析。
有些問題則並不清晰,比如在生產環節中,影響質量的核心指標是什麼,是原材料?設備水平?工人水平?天氣情況?某個環節工藝的復雜度?某項操作的重復次數?……這些可能並不明顯,或者你是涉足新的領域,並沒有非常專業的知識,那麼你可能需要定義的問題就需要更加寬泛,涵蓋更多的可能性。
問題的定義可能需要你去了解業務的核心知識,並從中獲得一些可以幫助你進行分析的經驗。從某種程度上說,這也是我們經常提到的數據思維。數據分析很多時候可以幫助你發現我們不容易發現的相關性,但對問題的精確定義,可以從很大程度上提升數據分析的效率。
如何更好地定義問題?
這就需要你在長期的訓練中找到對數據的感覺,開始的時候你拿到特別大的數據,有非常多的欄位,可能會很懵逼,到底應該從什麼地方下手呢?
但如果有一些經驗就會好很多。比如,你要研究影響跑步運動員速度的身體因素,那麼我們可能會去研究運動員的身高、腿長、體重、甚至心率、血壓、臂長,而不太會去研究運動員的腋毛長度,這是基於我們已有的知識。又比如我們要分析影響一個地方房價的因素,那麼我們可能會有一些通用的常識,比如城市人口、地理位置、GDP、地價、物價水平,更深入的可能會有產業格局、文化狀態、氣候情況等等,但一般我們不會去研究城市的女孩長相,美女佔比。
所以當你分析的問題多了之後,你就會有一些自己對數據的敏感度,從而養成用數據分析、用數據說話的習慣。這個時候你甚至可以基於一些數據,根據自己的經驗做出初步的判斷和預測(當然是不能取代完整樣本的精準預測),這個時候,你就基本擁有數據思維了。

2.數據獲取
有了具體的問題,你就需要獲取相關的數據了。比如你要探究北京空氣質量變化的趨勢,你可能就需要收集北京最近幾年的空氣質量數據、天氣數據,甚至工廠數據、氣體排放數據、重要日程數據等等。如果你要分析影響公司銷售的關鍵因素,你就需要調用公司的歷史銷售數據、用戶畫像數據、廣告投放數據等。
數據的獲取方式有多種。
一是公司的銷售、用戶數據,可以直接從企業資料庫調取,所以你需要SQL技能去完成數據提取等的資料庫管理工作。比如你可以根據你的需要提取2017年所有的銷售數據、提取今年銷量最大的50件商品的數據、提取上海、廣東地區用戶的消費數據……,SQL可以通過簡單的命令幫你完成這些工作。
第二種是獲取外部的公開數據集,一些科研機構、企業、政府會開放一些數據,你需要到特定的網站去下載這些數據。這些數據集通常比較完善、質量相對較高。當然這種方式也有一些缺陷,通常數據會發布的比較滯後,但通常因為客觀性、權威性,仍然具有很大的價值。
第三種是編寫網頁爬蟲,去收集互聯網上的數據。比如你可以通過爬蟲獲取招聘網站某一職位的招聘信息,爬取租房網站上某城市的租房信息,爬取豆瓣評分評分最高的電影列表,獲取知乎點贊排行、網易雲音樂評論排行列表。基於互聯網爬取的數據,你可以對某個行業、某種人群進行分析,這算是非常靠譜的市場調研、競品分析的方式了。
當然,比較BUG的一點是,你通常並不能夠獲得所有你需要的數據,這對你的分析結果是有一定影響的,但不不影響的是,你通過有限的可獲取的數據,提取更多有用的信息。

3.數據預處理
現實世界中數據大體上都是不完整,不一致的臟數據,無法直接進行數據分析,或分析結果差強人意。數據預處理有多種方法:數據清理,數據集成,數據變換,數據歸約等。把這些影響分析的數據處理好,才能獲得更加精確地分析結果。
比如空氣質量的數據,其中有很多天的數據由於設備的原因是沒有監測到的,有一些數據是記錄重復的,還有一些數據是設備故障時監測無效的。
那麼我們需要用相應的方法去處理,比如殘缺數據,我們是直接去掉這條數據,還是用臨近的值去補全,這些都是需要考慮的問題。
當然在這里我們還可能會有數據的分組、基本描述統計量的計算、基本統計圖形的繪制、數據取值的轉換、數據的正態化處理等,能夠幫助我們掌握數據的分布特徵,是進一步深入分析和建模的基礎。

4.數據分析與建模
在這個部分需要了解基本的數據分析方法、數據挖掘演算法,了解不同方法適用的場景和適合的問題。分析時應切忌濫用和誤用統計分析方法。濫用和誤用統計分析方法主要是由於對方法能解決哪類問題、方法適用的前提、方法對數據的要求不清等原因造成的。
另外,選擇幾種統計分析方法對數據進行探索性的反復分析也是極為重要的。每一種統計分析方法都有自己的特點和局限,因此,一般需要選擇幾種方法反復印證分析,僅依據一種分析方法的結果就斷然下結論是不科學的。
比如你發現在一定條件下,銷量和價格是正比關系,那麼你可以據此建立一個線性回歸模型,你發現價格和廣告是非線性關系,你可以先建立一個邏輯回歸模型來進行分析。
一般情況下,回歸分析的方法可以滿足很大一部分的分析需求,當然你也可以了解一些數據挖掘的演算法、特徵提取的方法來優化自己的模型,獲得更好地結果。

5.數據可視化及數據報告的撰寫
分析結果最直接的結果是統計量的描述和統計量的展示。
比如我們通過數據的分布發現數據分析工資最高的5個城市,目前各種語言的流行度排行榜,近幾年北京空氣質量的變化趨勢,避孕套消費的地區分布……這些都是我們通過簡單數據分析與可視化就可以展現出的結果。
另外一些則需要深入探究內部的關系,比如影響產品質量最關鍵的幾個指標,你需要對不同指標與產品質量進行相關性分析之後才能得出正確結論。又比如你需要預測未來某個時間段的產品銷量,則需要你對歷史數據進行建模和分析,才能對未來的情況有更精準的預測。
數據分析報告不僅是分析結果的直接呈現,還是對相關情況的一個全面的認識。我們經常看到一些行業分析報告從不同角度、深入淺析地剖析各種關系。所以你需要一個講故事的邏輯,如何從一個宏觀的問題,深入、細化到問題內部的方方面面,得出令人信服的結果,這需要從實踐中不斷訓練。

數據分析的一般流程總的來說就是這幾個步驟:問題定義、數據獲取、數據預處理、數據分析與建模、數據可視化與數據報告的撰寫。

Ⅹ 如何用聚類取把電影評分數據集分類

聚類分析指將物理或抽象對象的集合分組為由類似的對象組成的多個類的分析過程。它是一種重要的人類行為。
聚類分析的目標就是在相似的基礎上收集數據來分類。聚類源於很多領域,包括數學,計算機科學,統計學,生物學和經濟學。在不同的應用領域,很多聚類技術都得到了發展,這些技術方法被用作描述數據,衡量不同數據源間的相似性,以及把數據源分類到不同的簇中。

閱讀全文

與如何對電影評分進行數據挖掘相關的資料

熱點內容
未刪減版有哪些電影 瀏覽:1000
老師天生陰陽眼是什麼電影名字 瀏覽:598
網路電視有哪些好看的電影 瀏覽:511
三大女特工電影有哪些 瀏覽:87
電腦里電影如何保存到手機 瀏覽:274
和白頭神探一樣好看的電影 瀏覽:55
真好看的探險電影 瀏覽:196
初二英語電影評論怎麼寫 瀏覽:943
電影里阿甘有多少資產 瀏覽:706
微信訂電影票怎麼自助取票 瀏覽:270
香水電影免費播放 瀏覽:222
美團電影票會員卡優惠多少 瀏覽:41
電影碼流不夠如何增加 瀏覽:774
台灣電影最好看的十部 瀏覽:963
二十不惑免費觀看電影盒子 瀏覽:809
推薦幾部超好看的Yy小電影 瀏覽:458
李麗珍主演的電影有哪些 瀏覽:410
馮小剛電影公社好看嗎 瀏覽:810
古裝電影中辮子功什麼電影 瀏覽:372
火燒紅蓮寺電影免費版 瀏覽:231