国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

如何做電商網(wǎng)站成都seo的方法

如何做電商網(wǎng)站,成都seo的方法,深圳 網(wǎng)站開(kāi)發(fā)公司電話,阿里云ecs 搭建網(wǎng)站🤵?♂? 個(gè)人主頁(yè):艾派森的個(gè)人主頁(yè) ?🏻作者簡(jiǎn)介:Python學(xué)習(xí)者 🐋 希望大家多多支持,我們一起進(jìn)步!😄 如果文章對(duì)你有幫助的話, 歡迎評(píng)論 💬點(diǎn)贊&#x1f4…

🤵?♂? 個(gè)人主頁(yè):@艾派森的個(gè)人主頁(yè)

?🏻作者簡(jiǎn)介:Python學(xué)習(xí)者
🐋 希望大家多多支持,我們一起進(jìn)步!😄
如果文章對(duì)你有幫助的話,
歡迎評(píng)論 💬點(diǎn)贊👍🏻 收藏 📂加關(guān)注+


喜歡大數(shù)據(jù)分析項(xiàng)目的小伙伴,希望可以多多支持該系列的其他文章

大數(shù)據(jù)分析案例合集
大數(shù)據(jù)分析案例-基于隨機(jī)森林算法預(yù)測(cè)人類(lèi)預(yù)期壽命
大數(shù)據(jù)分析案例-基于隨機(jī)森林算法的商品評(píng)價(jià)情感分析
大數(shù)據(jù)分析案例-用RFM模型對(duì)客戶價(jià)值分析(聚類(lèi))
大數(shù)據(jù)分析案例-對(duì)電信客戶流失分析預(yù)警預(yù)測(cè)
大數(shù)據(jù)分析案例-基于隨機(jī)森林模型對(duì)北京房?jī)r(jià)進(jìn)行預(yù)測(cè)
大數(shù)據(jù)分析案例-基于RFM模型對(duì)電商客戶價(jià)值分析
大數(shù)據(jù)分析案例-基于邏輯回歸算法構(gòu)建垃圾郵件分類(lèi)器模型
大數(shù)據(jù)分析案例-基于決策樹(shù)算法構(gòu)建員工離職預(yù)測(cè)模型

大數(shù)據(jù)分析案例-基于KNN算法對(duì)茅臺(tái)股票進(jìn)行預(yù)測(cè)

大數(shù)據(jù)分析案例-基于多元線性回歸算法構(gòu)建廣告投放收益模型
大數(shù)據(jù)分析案例-基于隨機(jī)森林算法構(gòu)建返鄉(xiāng)人群預(yù)測(cè)模型
大數(shù)據(jù)分析案例-基于決策樹(shù)算法構(gòu)建金融反欺詐分類(lèi)模型

目錄

1.項(xiàng)目背景

2.項(xiàng)目簡(jiǎn)介

2.1項(xiàng)目說(shuō)明

2.2數(shù)據(jù)說(shuō)明

2.3技術(shù)工具

3.算法原理

4.項(xiàng)目實(shí)施步驟

4.1理解數(shù)據(jù)

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

4.3探索性數(shù)據(jù)分析

4.4特征工程

4.5模型構(gòu)建

4.6模型評(píng)估

5.實(shí)驗(yàn)總結(jié)

源代碼


1.項(xiàng)目背景

????????電影票房預(yù)測(cè)一直是電影產(chǎn)業(yè)中的一個(gè)重要問(wèn)題,對(duì)于制片方、發(fā)行方和影院等利益相關(guān)者而言,準(zhǔn)確地預(yù)測(cè)電影票房可以幫助他們做出更明智的決策。在電影產(chǎn)業(yè)中,投資決策、市場(chǎng)營(yíng)銷(xiāo)策略、排片安排等方面的決策都受到電影票房預(yù)測(cè)的影響。因此,構(gòu)建一種準(zhǔn)確可靠的電影票房預(yù)測(cè)模型對(duì)于電影產(chǎn)業(yè)的發(fā)展具有重要意義。

研究背景主要包括以下幾個(gè)方面:

  1. 市場(chǎng)競(jìng)爭(zhēng)激烈: 電影市場(chǎng)競(jìng)爭(zhēng)激烈,每年推出大量新片。在這種競(jìng)爭(zhēng)環(huán)境下,能夠提前了解一部電影可能取得的票房情況,對(duì)于選擇上映時(shí)機(jī)、進(jìn)行市場(chǎng)宣傳、確定投資規(guī)模等方面至關(guān)重要。

  2. 復(fù)雜多變的影響因素: 影響電影票房的因素眾多,包括但不限于演員陣容、導(dǎo)演水平、電影類(lèi)型、上映時(shí)間、市場(chǎng)宣傳、觀眾口碑等。這些因素之間存在復(fù)雜的相互關(guān)系,傳統(tǒng)的分析方法難以全面考慮這些因素的綜合影響。

  3. 數(shù)據(jù)科學(xué)的應(yīng)用需求: 隨著數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,利用大量的電影數(shù)據(jù)進(jìn)行建模和預(yù)測(cè)成為可能。隨機(jī)森林算法是一種集成學(xué)習(xí)方法,具有高準(zhǔn)確性和強(qiáng)大的泛化能力,特別適用于處理大規(guī)模、高維度的數(shù)據(jù),因此成為構(gòu)建電影票房預(yù)測(cè)模型的理想選擇。

2.項(xiàng)目簡(jiǎn)介

2.1項(xiàng)目說(shuō)明

????????本研究旨在利用隨機(jī)森林算法構(gòu)建一種高效的電影票房預(yù)測(cè)模型,通過(guò)綜合考慮各種影響因素,提高預(yù)測(cè)準(zhǔn)確性,為電影產(chǎn)業(yè)相關(guān)方提供科學(xué)的決策依據(jù)。通過(guò)該研究,可以更好地理解影響電影票房的關(guān)鍵因素,為電影從業(yè)者提供更全面的市場(chǎng)分析和預(yù)測(cè)服務(wù)。

2.2數(shù)據(jù)說(shuō)明

????????該數(shù)據(jù)集來(lái)源于kaggle,該數(shù)據(jù)集包含1995年至2018年上映的電影類(lèi)型統(tǒng)計(jì)數(shù)據(jù),原始數(shù)據(jù)集共有300條,9個(gè)變量,各變量含義解釋如下:

Genre:電影的類(lèi)別或類(lèi)型。(分類(lèi))

Year:電影發(fā)行的年份。(數(shù)字)

Movies Released :特定類(lèi)型和年份發(fā)行的電影數(shù)量。(數(shù)字)

Gross:該類(lèi)型和年份的電影產(chǎn)生的總收入。(數(shù)字)

Tickets Sold:該類(lèi)型和年份的電影售出門(mén)票總數(shù)。(數(shù)字)

Inflation-Adjusted Gross:考慮到貨幣價(jià)值隨時(shí)間的變化,根據(jù)通貨膨脹進(jìn)行調(diào)整的總收入。(數(shù)字)

Top Movie:該類(lèi)型和年份中票房最高的電影的標(biāo)題。(文本)

Top Movie Gross (That Year):該類(lèi)型和年份中票房最高的電影產(chǎn)生的總收入。(數(shù)字)

Top Movie Inflation-Adjusted Gross (That Year):根據(jù)該類(lèi)型和年份的通貨膨脹調(diào)整后票房最高的電影的總收入。(數(shù)字)

2.3技術(shù)工具

Python版本:3.9

代碼編輯器:jupyter notebook

3.算法原理

????????隨機(jī)森林是一種有監(jiān)督學(xué)習(xí)算法。就像它的名字一樣,它創(chuàng)建了一個(gè)森林,并使它擁有某種方式隨機(jī)性。所構(gòu)建的“森林”是決策樹(shù)的集成,大部分時(shí)候都是用“bagging”方法訓(xùn)練的。bagging 方法,即 bootstrapaggregating,采用的是隨機(jī)有放回的選擇訓(xùn)練數(shù)據(jù)然后構(gòu)造分類(lèi)器,最后組合學(xué)習(xí)到的模型來(lái)增加整體的效果。簡(jiǎn)而言之,隨機(jī)森林建立了多個(gè)決策樹(shù),并將它們合并在一起以獲得更準(zhǔn)確和穩(wěn)定的預(yù)測(cè)。其一大優(yōu)勢(shì)在于它既可用于分類(lèi),也可用于回歸問(wèn)題,這兩類(lèi)問(wèn)題恰好構(gòu)成了當(dāng)前的大多數(shù)機(jī)器學(xué)習(xí)系統(tǒng)所需要面對(duì)的。

????????隨機(jī)森林分類(lèi)器使用所有的決策樹(shù)分類(lèi)器以及 bagging 分類(lèi)器的超參數(shù)來(lái)控制整體結(jié)構(gòu)。與其先構(gòu)建 bagging分類(lèi)器,并將其傳遞給決策樹(shù)分類(lèi)器,我們可以直接使用隨機(jī)森林分類(lèi)器類(lèi),這樣對(duì)于決策樹(shù)而言,更加方便和優(yōu)化。要注意的是,回歸問(wèn)題同樣有一個(gè)隨機(jī)森林回歸器與之相對(duì)應(yīng)。

????????隨機(jī)森林算法中樹(shù)的增長(zhǎng)會(huì)給模型帶來(lái)額外的隨機(jī)性。與決策樹(shù)不同的是,每個(gè)節(jié)點(diǎn)被分割成最小化誤差的最佳指標(biāo),在隨機(jī)森林中我們選擇隨機(jī)選擇的指標(biāo)來(lái)構(gòu)建最佳分割。因此,在隨機(jī)森林中,僅考慮用于分割節(jié)點(diǎn)的隨機(jī)子集,甚至可以通過(guò)在每個(gè)指標(biāo)上使用隨機(jī)閾值來(lái)使樹(shù)更加隨機(jī),而不是如正常的決策樹(shù)一樣搜索最佳閾值。這個(gè)過(guò)程產(chǎn)生了廣泛的多樣性,通??梢缘玫礁玫哪P?。

4.項(xiàng)目實(shí)施步驟

4.1理解數(shù)據(jù)

導(dǎo)入數(shù)據(jù)分析常用的第三方庫(kù)并加載數(shù)據(jù)

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.subplots as spdf = pd.read_csv("movies_data.csv")
df.head()

查看數(shù)據(jù)大小

?

查看數(shù)據(jù)基本信息

查看數(shù)值型變量的描述性統(tǒng)計(jì)

查看非數(shù)值型變量的描述性統(tǒng)計(jì)

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

統(tǒng)計(jì)缺失值情況

從結(jié)果來(lái)看,不存在缺失值?

檢測(cè)是否存在重復(fù)值?

?

結(jié)果為False,說(shuō)明不存在

4.3探索性數(shù)據(jù)分析

基于門(mén)票銷(xiāo)售和發(fā)行數(shù)量的流行類(lèi)型

# 基于門(mén)票銷(xiāo)售和發(fā)行數(shù)量的流行類(lèi)型
# 根據(jù)上映的電影數(shù)量找到受歡迎的類(lèi)型
genre_movies_released = df.groupby('Genre')['Movies Released'].sum().sort_values(ascending=False)
print("Popular genres based on Movies Released:")
print(genre_movies_released.head())
# 根據(jù)售出的門(mén)票總數(shù)來(lái)查找受歡迎的類(lèi)型
genre_tickets_sold = df.groupby('Genre')['Tickets Sold'].sum().sort_values(ascending=False)
print("\nPopular genres based on Tickets Sold:")
print(genre_tickets_sold.head())
fig, axes = plt.subplots(2, 1, figsize=(10, 8))
genre_movies_released.head().plot(kind='bar', ax=axes[0], color='skyblue')
axes[0].set_title('Top Genres by Movies Released')
axes[0].set_ylabel('Total Movies Released')
genre_tickets_sold.head().plot(kind='bar', ax=axes[1], color='lightcoral')
axes[1].set_title('Top Genres by Tickets Sold')
axes[1].set_ylabel('Total Tickets Sold')
plt.tight_layout()
plt.show()

類(lèi)型和收益分析

# 類(lèi)型和收益分析
genre_gross = df.groupby('Genre')['Gross'].sum().sort_values(ascending=False).head()
genre_inflation_adjusted_gross = df.groupby('Genre')['Inflation-Adjusted Gross'].sum().sort_values(ascending=False).head()
genre_top_movie_gross = df.groupby('Genre')['Top Movie Gross (That Year)'].max().sort_values(ascending=False).head()
fig = make_subplots(rows=3, cols=1, subplot_titles=['Top Genres by Gross Revenue', 'Top Genres by Inflation-Adjusted Gross Revenue', 'Top Genres by Top Movie Gross (That Year)'])
fig.add_trace(go.Bar(x=genre_gross.index, y=genre_gross.values, name='Gross Revenue', marker_color='skyblue'), row=1, col=1)
fig.add_trace(go.Bar(x=genre_inflation_adjusted_gross.index, y=genre_inflation_adjusted_gross.values, name='Inflation-Adjusted Gross Revenue', marker_color='lightcoral'), row=2, col=1)
fig.add_trace(go.Bar(x=genre_top_movie_gross.index, y=genre_top_movie_gross.values, name='Top Movie Gross (That Year)', marker_color='lightgreen'), row=3, col=1)
fig.update_layout(height=900, showlegend=False, title_text="Financial Success of Genres")
fig.update_xaxes(title_text="Genres", row=3, col=1)
fig.update_yaxes(title_text="Total Gross Revenue", row=1, col=1)
fig.update_yaxes(title_text="Total Inflation-Adjusted Gross Revenue", row=2, col=1)
fig.update_yaxes(title_text="Top Movie Gross (That Year)", row=3, col=1)
fig.show()

多年來(lái)的類(lèi)型趨勢(shì)和分析

# 多年來(lái)的類(lèi)型趨勢(shì)和分析
selected_genres = ['Action', 'Comedy', 'Drama', 'Adventure']
filtered_df = df[df['Genre'].isin(selected_genres)]
fig = px.line(filtered_df, x='Year', y='Movies Released', color='Genre',title='Movie Releases Over Time for Selected Genres',labels={'Movies Released': 'Number of Movies Released'},line_shape='linear')
fig.show()# 為不同年份的總收入創(chuàng)建一個(gè)交互式折線圖
fig = px.line(filtered_df, x='Year', y='Gross', color='Genre',title='Gross Revenue Over Time for Selected Genres',labels={'Gross': 'Total Gross Revenue'},line_shape='linear')
fig.show()

一段時(shí)間內(nèi)選定類(lèi)型中票房最高的電影

# 一段時(shí)間內(nèi)選定類(lèi)型中票房最高的電影
selected_genres = ['Action', 'Comedy', 'Drama', 'Adventure']
filtered_df = df[df['Genre'].isin(selected_genres)]
# 創(chuàng)建一個(gè)交互式條形圖來(lái)顯示每種類(lèi)型和年份中票房最高的電影
fig = px.bar(filtered_df, x='Year', y='Top Movie Gross (That Year)', color='Genre',title='Highest-Grossing Movies in Selected Genres Over Time',labels={'Top Movie Gross (That Year)': 'Gross Revenue'},text='Top Movie', height=500)
fig.update_traces(textposition='outside')
fig.show()

多年來(lái)的類(lèi)型分布

# 多年來(lái)的類(lèi)型分布
# 多年來(lái)類(lèi)型分布的堆疊區(qū)域圖
fig = px.area(df, x='Year', y='Movies Released', color='Genre',title='Genre Distribution Over the Years',labels={'Movies Released': 'Number of Movies Released'},height=500)
fig.show()

受眾參與分析

# 受眾參與分析
# 觀眾參與的散點(diǎn)圖
fig = px.scatter(df, x='Tickets Sold', y='Gross', color='Genre',title='Audience Engagement by Genre',labels={'Tickets Sold': 'Number of Tickets Sold', 'Gross': 'Total Gross Revenue'},height=500)
fig.show()

歷年最佳電影表現(xiàn)

# 歷年最佳電影表現(xiàn)
# 隨時(shí)間變化的頂級(jí)電影表現(xiàn)的折線圖
fig = px.line(df, x='Year', y='Top Movie Gross (That Year)', color='Genre',title='Top Movie Performance Over Time',labels={'Top Movie Gross (That Year)': 'Gross Revenue'},height=500)
fig.show()

按類(lèi)型劃分的每部電影平均收入

# 按類(lèi)型劃分的每部電影平均收入
# 按類(lèi)型計(jì)算每部電影的平均收入
df['Average Revenue per Movie'] = df['Gross'] / df['Movies Released']
# 按類(lèi)型劃分的每部電影平均收入柱狀圖
fig = px.bar(df, x='Genre', y='Average Revenue per Movie',title='Average Revenue per Movie by Genre',labels={'Average Revenue per Movie': 'Average Revenue per Movie'},height=500)
fig.show()

不同類(lèi)型的門(mén)票銷(xiāo)售和發(fā)行

# 不同類(lèi)型的門(mén)票銷(xiāo)售和發(fā)行
fig = px.violin(df, x='Genre', y='Tickets Sold',title='Genre-wise Ticket Sales Distribution',labels={'Tickets Sold': 'Number of Tickets Sold'},height=500)
fig.show()

通貨膨脹調(diào)整后總收益的類(lèi)型趨勢(shì)

# 通貨膨脹調(diào)整后總收益的類(lèi)型趨勢(shì)
fig = px.line(df, x='Year', y='Inflation-Adjusted Gross', color='Genre',title='Genre Trends in Inflation-Adjusted Gross Revenue',labels={'Inflation-Adjusted Gross': 'Inflation-Adjusted Gross Revenue'},height=500)
fig.show()

每個(gè)類(lèi)型和收入的頂級(jí)電影

# 每個(gè)類(lèi)型和收入的頂級(jí)電影
unique_top_movies_count = df.groupby('Genre')['Top Movie'].nunique().sort_values(ascending=False)
top_movies_gross = df.groupby('Top Movie')['Top Movie Gross (That Year)'].max().sort_values(ascending=False).head(10)
fig = sp.make_subplots(rows=3, cols=1, subplot_titles=['Count of Unique Top Movies per Genre', 'Top Movies with the Highest Gross Revenue', 'Distribution of Gross Revenue for Top Movies'])
fig.add_trace(go.Bar(x=unique_top_movies_count.index, y=unique_top_movies_count.values),row=1, col=1)
fig.add_trace(go.Bar(x=top_movies_gross.index, y=top_movies_gross.values),row=2, col=1)
fig.add_trace(go.Box(x=df['Top Movie'], y=df['Top Movie Gross (That Year)']),row=3, col=1)
fig.update_layout(height=1000, showlegend=False, title_text="Top Movie Analysis")
fig.show()

4.4特征工程

導(dǎo)入第三方庫(kù)并準(zhǔn)備建模需要的數(shù)據(jù)

from sklearn.model_selection import KFold, cross_val_predict
from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.metrics import mean_squared_error
dff = df.copy()
categorical_features = ['Genre']  # 假設(shè)“類(lèi)型”是一個(gè)分類(lèi)變量
numerical_features = ['Year', 'Movies Released']
target_variable = 'Tickets Sold'# 篩選DataFrame以僅包含相關(guān)列
data = df[['Year', 'Movies Released', 'Genre', 'Tickets Sold', 'Gross']]# 將數(shù)據(jù)拆分為特征和目標(biāo)變量
X = data[['Year', 'Movies Released', 'Genre', 'Gross']]
y = data[target_variable]

4.5模型構(gòu)建

初始化模型,創(chuàng)建管道

# 定義分類(lèi)編碼的預(yù)處理器
preprocessor = ColumnTransformer(transformers=[('cat', OneHotEncoder(), categorical_features),],remainder='passthrough'
)# 初始化隨機(jī)森林回歸模型
model = RandomForestRegressor(n_estimators=100, random_state=42)# 創(chuàng)建帶有預(yù)處理和模型的管道
pipeline = Pipeline([('preprocessor', preprocessor),('model', model)
])

交叉驗(yàn)證

# 初始化KFold以進(jìn)行交叉驗(yàn)證
kf = KFold(n_splits=5, shuffle=True, random_state=42)
# 進(jìn)行k-fold交叉驗(yàn)證并進(jìn)行預(yù)測(cè)
predictions = cross_val_predict(pipeline, X, y, cv=kf)
# 評(píng)估模型性能
mse = mean_squared_error(y, predictions)
print(f'Mean Squared Error: {mse}')

?

4.6模型評(píng)估

# 可視化實(shí)際值和預(yù)測(cè)值
plt.scatter(y, predictions)
plt.xlabel('Actual Tickets Sold')
plt.ylabel('Predicted Tickets Sold')
plt.title('Actual vs. Predicted Tickets Sold')
plt.show()

5.實(shí)驗(yàn)總結(jié)

? ? ? ? 本實(shí)驗(yàn)通過(guò)對(duì)電影數(shù)據(jù)進(jìn)行數(shù)據(jù)可視化、特征工程、建模分析,使用隨機(jī)森林算法構(gòu)建預(yù)測(cè)模型??偟膩?lái)說(shuō),基于隨機(jī)森林算法構(gòu)建的電影票房預(yù)測(cè)模型為電影產(chǎn)業(yè)提供了一種強(qiáng)大的工具。然而,對(duì)于實(shí)際應(yīng)用,還需要綜合考慮業(yè)務(wù)背景、市場(chǎng)趨勢(shì)等因素,將模型預(yù)測(cè)結(jié)果與實(shí)際情況相結(jié)合,形成更全面的決策依據(jù)。

心得與體會(huì):

通過(guò)這次Python項(xiàng)目實(shí)戰(zhàn),我學(xué)到了許多新的知識(shí),這是一個(gè)讓我把書(shū)本上的理論知識(shí)運(yùn)用于實(shí)踐中的好機(jī)會(huì)。原先,學(xué)的時(shí)候感嘆學(xué)的資料太難懂,此刻想來(lái),有些其實(shí)并不難,關(guān)鍵在于理解。

在這次實(shí)戰(zhàn)中還鍛煉了我其他方面的潛力,提高了我的綜合素質(zhì)。首先,它鍛煉了我做項(xiàng)目的潛力,提高了獨(dú)立思考問(wèn)題、自我動(dòng)手操作的潛力,在工作的過(guò)程中,復(fù)習(xí)了以前學(xué)習(xí)過(guò)的知識(shí),并掌握了一些應(yīng)用知識(shí)的技巧等

在此次實(shí)戰(zhàn)中,我還學(xué)會(huì)了下面幾點(diǎn)工作學(xué)習(xí)心態(tài):

1)繼續(xù)學(xué)習(xí),不斷提升理論涵養(yǎng)。在信息時(shí)代,學(xué)習(xí)是不斷地汲取新信息,獲得事業(yè)進(jìn)步的動(dòng)力。作為一名青年學(xué)子更就應(yīng)把學(xué)習(xí)作為持續(xù)工作用心性的重要途徑。走上工作崗位后,我會(huì)用心響應(yīng)單位號(hào)召,結(jié)合工作實(shí)際,不斷學(xué)習(xí)理論、業(yè)務(wù)知識(shí)和社會(huì)知識(shí),用先進(jìn)的理論武裝頭腦,用精良的業(yè)務(wù)知識(shí)提升潛力,以廣博的社會(huì)知識(shí)拓展視野。

2)努力實(shí)踐,自覺(jué)進(jìn)行主角轉(zhuǎn)化。只有將理論付諸于實(shí)踐才能實(shí)現(xiàn)理論自身的價(jià)值,也只有將理論付諸于實(shí)踐才能使理論得以檢驗(yàn)。同樣,一個(gè)人的價(jià)值也是透過(guò)實(shí)踐活動(dòng)來(lái)實(shí)現(xiàn)的,也只有透過(guò)實(shí)踐才能鍛煉人的品質(zhì),彰顯人的意志。

3)提高工作用心性和主動(dòng)性。實(shí)習(xí),是開(kāi)端也是結(jié)束。展此刻自我面前的是一片任自我馳騁的沃土,也分明感受到了沉甸甸的職責(zé)。在今后的工作和生活中,我將繼續(xù)學(xué)習(xí),深入實(shí)踐,不斷提升自我,努力創(chuàng)造業(yè)績(jī),繼續(xù)創(chuàng)造更多的價(jià)值。

這次Python實(shí)戰(zhàn)不僅僅使我學(xué)到了知識(shí),豐富了經(jīng)驗(yàn)。也幫忙我縮小了實(shí)踐和理論的差距。在未來(lái)的工作中我會(huì)把學(xué)到的理論知識(shí)和實(shí)踐經(jīng)驗(yàn)不斷的應(yīng)用到實(shí)際工作中,為實(shí)現(xiàn)理想而努力。

源代碼

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.subplots as spdf = pd.read_csv("movies_data.csv")
df.head()
df.shape
df.info()
df.describe()
df.describe(include='O')
df.isnull().sum()
any(df.duplicated())
# 基于門(mén)票銷(xiāo)售和發(fā)行數(shù)量的流行類(lèi)型
# 根據(jù)上映的電影數(shù)量找到受歡迎的類(lèi)型
genre_movies_released = df.groupby('Genre')['Movies Released'].sum().sort_values(ascending=False)
print("Popular genres based on Movies Released:")
print(genre_movies_released.head())
# 根據(jù)售出的門(mén)票總數(shù)來(lái)查找受歡迎的類(lèi)型
genre_tickets_sold = df.groupby('Genre')['Tickets Sold'].sum().sort_values(ascending=False)
print("\nPopular genres based on Tickets Sold:")
print(genre_tickets_sold.head())
fig, axes = plt.subplots(2, 1, figsize=(10, 8))
genre_movies_released.head().plot(kind='bar', ax=axes[0], color='skyblue')
axes[0].set_title('Top Genres by Movies Released')
axes[0].set_ylabel('Total Movies Released')
genre_tickets_sold.head().plot(kind='bar', ax=axes[1], color='lightcoral')
axes[1].set_title('Top Genres by Tickets Sold')
axes[1].set_ylabel('Total Tickets Sold')
plt.tight_layout()
plt.show()
# 類(lèi)型和收益分析
genre_gross = df.groupby('Genre')['Gross'].sum().sort_values(ascending=False).head()
genre_inflation_adjusted_gross = df.groupby('Genre')['Inflation-Adjusted Gross'].sum().sort_values(ascending=False).head()
genre_top_movie_gross = df.groupby('Genre')['Top Movie Gross (That Year)'].max().sort_values(ascending=False).head()
fig = make_subplots(rows=3, cols=1, subplot_titles=['Top Genres by Gross Revenue', 'Top Genres by Inflation-Adjusted Gross Revenue', 'Top Genres by Top Movie Gross (That Year)'])
fig.add_trace(go.Bar(x=genre_gross.index, y=genre_gross.values, name='Gross Revenue', marker_color='skyblue'), row=1, col=1)
fig.add_trace(go.Bar(x=genre_inflation_adjusted_gross.index, y=genre_inflation_adjusted_gross.values, name='Inflation-Adjusted Gross Revenue', marker_color='lightcoral'), row=2, col=1)
fig.add_trace(go.Bar(x=genre_top_movie_gross.index, y=genre_top_movie_gross.values, name='Top Movie Gross (That Year)', marker_color='lightgreen'), row=3, col=1)
fig.update_layout(height=900, showlegend=False, title_text="Financial Success of Genres")
fig.update_xaxes(title_text="Genres", row=3, col=1)
fig.update_yaxes(title_text="Total Gross Revenue", row=1, col=1)
fig.update_yaxes(title_text="Total Inflation-Adjusted Gross Revenue", row=2, col=1)
fig.update_yaxes(title_text="Top Movie Gross (That Year)", row=3, col=1)
fig.show()
# 多年來(lái)的類(lèi)型趨勢(shì)和分析
selected_genres = ['Action', 'Comedy', 'Drama', 'Adventure']
filtered_df = df[df['Genre'].isin(selected_genres)]
fig = px.line(filtered_df, x='Year', y='Movies Released', color='Genre',title='Movie Releases Over Time for Selected Genres',labels={'Movies Released': 'Number of Movies Released'},line_shape='linear')
fig.show()# 為不同年份的總收入創(chuàng)建一個(gè)交互式折線圖
fig = px.line(filtered_df, x='Year', y='Gross', color='Genre',title='Gross Revenue Over Time for Selected Genres',labels={'Gross': 'Total Gross Revenue'},line_shape='linear')
fig.show()
# 一段時(shí)間內(nèi)選定類(lèi)型中票房最高的電影
selected_genres = ['Action', 'Comedy', 'Drama', 'Adventure']
filtered_df = df[df['Genre'].isin(selected_genres)]
# 創(chuàng)建一個(gè)交互式條形圖來(lái)顯示每種類(lèi)型和年份中票房最高的電影
fig = px.bar(filtered_df, x='Year', y='Top Movie Gross (That Year)', color='Genre',title='Highest-Grossing Movies in Selected Genres Over Time',labels={'Top Movie Gross (That Year)': 'Gross Revenue'},text='Top Movie', height=500)
fig.update_traces(textposition='outside')
fig.show()
# 多年來(lái)的類(lèi)型分布
# 多年來(lái)類(lèi)型分布的堆疊區(qū)域圖
fig = px.area(df, x='Year', y='Movies Released', color='Genre',title='Genre Distribution Over the Years',labels={'Movies Released': 'Number of Movies Released'},height=500)
fig.show()
# 受眾參與分析
# 觀眾參與的散點(diǎn)圖
fig = px.scatter(df, x='Tickets Sold', y='Gross', color='Genre',title='Audience Engagement by Genre',labels={'Tickets Sold': 'Number of Tickets Sold', 'Gross': 'Total Gross Revenue'},height=500)
fig.show()
# 歷年最佳電影表現(xiàn)
# 隨時(shí)間變化的頂級(jí)電影表現(xiàn)的折線圖
fig = px.line(df, x='Year', y='Top Movie Gross (That Year)', color='Genre',title='Top Movie Performance Over Time',labels={'Top Movie Gross (That Year)': 'Gross Revenue'},height=500)
fig.show()
# 按類(lèi)型劃分的每部電影平均收入
# 按類(lèi)型計(jì)算每部電影的平均收入
df['Average Revenue per Movie'] = df['Gross'] / df['Movies Released']
# 按類(lèi)型劃分的每部電影平均收入柱狀圖
fig = px.bar(df, x='Genre', y='Average Revenue per Movie',title='Average Revenue per Movie by Genre',labels={'Average Revenue per Movie': 'Average Revenue per Movie'},height=500)
fig.show()
# 不同類(lèi)型的門(mén)票銷(xiāo)售和發(fā)行
fig = px.violin(df, x='Genre', y='Tickets Sold',title='Genre-wise Ticket Sales Distribution',labels={'Tickets Sold': 'Number of Tickets Sold'},height=500)
fig.show()
# 通貨膨脹調(diào)整后總收益的類(lèi)型趨勢(shì)
fig = px.line(df, x='Year', y='Inflation-Adjusted Gross', color='Genre',title='Genre Trends in Inflation-Adjusted Gross Revenue',labels={'Inflation-Adjusted Gross': 'Inflation-Adjusted Gross Revenue'},height=500)
fig.show()
# 每個(gè)類(lèi)型和收入的頂級(jí)電影
unique_top_movies_count = df.groupby('Genre')['Top Movie'].nunique().sort_values(ascending=False)
top_movies_gross = df.groupby('Top Movie')['Top Movie Gross (That Year)'].max().sort_values(ascending=False).head(10)
fig = sp.make_subplots(rows=3, cols=1, subplot_titles=['Count of Unique Top Movies per Genre', 'Top Movies with the Highest Gross Revenue', 'Distribution of Gross Revenue for Top Movies'])
fig.add_trace(go.Bar(x=unique_top_movies_count.index, y=unique_top_movies_count.values),row=1, col=1)
fig.add_trace(go.Bar(x=top_movies_gross.index, y=top_movies_gross.values),row=2, col=1)
fig.add_trace(go.Box(x=df['Top Movie'], y=df['Top Movie Gross (That Year)']),row=3, col=1)
fig.update_layout(height=1000, showlegend=False, title_text="Top Movie Analysis")
fig.show()
from sklearn.model_selection import KFold, cross_val_predict
from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.metrics import mean_squared_error
dff = df.copy()
categorical_features = ['Genre']  # 假設(shè)“類(lèi)型”是一個(gè)分類(lèi)變量
numerical_features = ['Year', 'Movies Released']
target_variable = 'Tickets Sold'# 篩選DataFrame以僅包含相關(guān)列
data = df[['Year', 'Movies Released', 'Genre', 'Tickets Sold', 'Gross']]# 將數(shù)據(jù)拆分為特征和目標(biāo)變量
X = data[['Year', 'Movies Released', 'Genre', 'Gross']]
y = data[target_variable]
# 定義分類(lèi)編碼的預(yù)處理器
preprocessor = ColumnTransformer(transformers=[('cat', OneHotEncoder(), categorical_features),],remainder='passthrough'
)# 初始化隨機(jī)森林回歸模型
model = RandomForestRegressor(n_estimators=100, random_state=42)# 創(chuàng)建帶有預(yù)處理和模型的管道
pipeline = Pipeline([('preprocessor', preprocessor),('model', model)
])
# 初始化KFold以進(jìn)行交叉驗(yàn)證
kf = KFold(n_splits=5, shuffle=True, random_state=42)
# 進(jìn)行k-fold交叉驗(yàn)證并進(jìn)行預(yù)測(cè)
predictions = cross_val_predict(pipeline, X, y, cv=kf)
# 評(píng)估模型性能
mse = mean_squared_error(y, predictions)
print(f'Mean Squared Error: {mse}')
# 可視化實(shí)際值和預(yù)測(cè)值
plt.scatter(y, predictions)
plt.xlabel('Actual Tickets Sold')
plt.ylabel('Predicted Tickets Sold')
plt.title('Actual vs. Predicted Tickets Sold')
plt.show()
http://aloenet.com.cn/news/47835.html

相關(guān)文章:

  • 鄭州的做網(wǎng)站公司有哪些好搜搜索
  • 做網(wǎng)站即墨鄭州競(jìng)價(jià)托管公司哪家好
  • 賀卡制作優(yōu)化資訊
  • 榆次建設(shè)局網(wǎng)站普通話手抄報(bào)簡(jiǎn)單又漂亮
  • 個(gè)人網(wǎng)站建站指南他達(dá)那非片能延時(shí)多久
  • php做網(wǎng)站的好處寧波seo外包推廣渠道
  • 購(gòu)物網(wǎng)站圖片的放大怎么做的seo網(wǎng)絡(luò)推廣教程
  • html5網(wǎng)站下載建站模板哪個(gè)好
  • 網(wǎng)絡(luò)營(yíng)銷(xiāo)應(yīng)該這樣做seo優(yōu)化交流
  • 保定企業(yè)網(wǎng)站制作電商數(shù)據(jù)統(tǒng)計(jì)網(wǎng)站
  • 目前流行的網(wǎng)站開(kāi)發(fā)技術(shù)浙江專(zhuān)業(yè)網(wǎng)站seo
  • 高端網(wǎng)站定制策劃長(zhǎng)沙官網(wǎng)seo技巧
  • 可以做書(shū)的網(wǎng)站全國(guó)疫情最新公布
  • 站長(zhǎng)平臺(tái)有哪些交換友情鏈接的方法
  • 談?wù)勀銓?duì)網(wǎng)站建設(shè)有什么樣好的建設(shè)意見(jiàn)做一個(gè)簡(jiǎn)單的網(wǎng)站需要多少錢(qián)
  • 一般做網(wǎng)站需要的js有哪些網(wǎng)絡(luò)營(yíng)銷(xiāo)的方法
  • web前端開(kāi)發(fā)視頻教學(xué)seo排名是什么
  • 真正能約拍的app做好的網(wǎng)站怎么優(yōu)化
  • p2p做網(wǎng)站貴州二級(jí)站seo整站優(yōu)化排名
  • 機(jī)關(guān)事業(yè)單位網(wǎng)站備案谷歌瀏覽器下載
  • ibm網(wǎng)站導(dǎo)航特效代碼信息流廣告投放平臺(tái)
  • 高端做網(wǎng)站哪家好百度一下官網(wǎng)首頁(yè)登錄
  • 臺(tái)州網(wǎng)站建設(shè)優(yōu)化深圳seo推廣
  • 金華專(zhuān)業(yè)做網(wǎng)站建站推廣
  • 互聯(lián)網(wǎng)金融網(wǎng)站設(shè)計(jì)百度收錄查詢工具
  • 模型下載網(wǎng)站開(kāi)發(fā)流程廣州網(wǎng)頁(yè)制作
  • 網(wǎng)站建設(shè)月總結(jié)怎么做百度關(guān)鍵詞排名
  • 網(wǎng)站首頁(yè)的動(dòng)態(tài)視頻怎么做的公司seo排名優(yōu)化
  • 給網(wǎng)站做插畫(huà)分辨率seo也成搜索引擎優(yōu)化
  • 北京網(wǎng)站建設(shè)天下公司網(wǎng)絡(luò)營(yíng)銷(xiāo)品牌