成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何用 Python 進行數據挖掘七個算法介紹

開發 后端
Python 作為一種強大的編程語言,在數據挖掘領域有著廣泛的應用。本文將介紹7種常用的Python數據挖掘算法,并通過實際代碼示例幫助你更好地理解和應用這些算法。

數據挖掘是利用計算機技術從大量數據中提取有用信息的過程。Python 作為一種強大的編程語言,在數據挖掘領域有著廣泛的應用。本文將介紹7種常用的Python數據挖掘算法,并通過實際代碼示例幫助你更好地理解和應用這些算法。

1. 決策樹

決策樹是一種用于分類和回歸任務的監督學習算法。它通過樹狀結構來表示決策過程,每個內部節點表示一個屬性上的測試,每個分支代表一個測試結果,每個葉節點代表一種分類結果。

示例代碼:

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加載數據集
data = load_iris()
X = data.data
y = data.target

# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 創建決策樹模型
clf = DecisionTreeClassifier()

# 訓練模型
clf.fit(X_train, y_train)

# 預測
y_pred = clf.predict(X_test)

# 計算準確率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.2f}')

2. 支持向量機 (SVM)

支持向量機是一種用于分類和回歸任務的監督學習算法。它通過找到一個超平面來最大化不同類別之間的間隔,從而實現分類。

示例代碼:

from sklearn.datasets import load_breast_cancer
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加載數據集
data = load_breast_cancer()
X = data.data
y = data.target

# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 創建SVM模型
clf = SVC()

# 訓練模型
clf.fit(X_train, y_train)

# 預測
y_pred = clf.predict(X_test)

# 計算準確率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.2f}')

3. K-近鄰 (KNN)

K-近鄰算法是一種基于實例的學習方法,用于分類和回歸任務。它通過計算樣本之間的距離來確定最近的K個鄰居,并根據這些鄰居的標簽來進行預測。

示例代碼:

from sklearn.datasets import load_digits
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加載數據集
data = load_digits()
X = data.data
y = data.target

# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 創建KNN模型
clf = KNeighborsClassifier(n_neighbors=3)

# 訓練模型
clf.fit(X_train, y_train)

# 預測
y_pred = clf.predict(X_test)

# 計算準確率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.2f}')

4. 樸素貝葉斯

樸素貝葉斯是一種基于貝葉斯定理的分類算法,假設特征之間相互獨立。它常用于文本分類、垃圾郵件過濾等任務。

示例代碼:

from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加載數據集
data = fetch_20newsgroups(subset='all')
X = data.data
y = data.target

# 將文本數據轉換為詞頻矩陣
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(X)

# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 創建樸素貝葉斯模型
clf = MultinomialNB()

# 訓練模型
clf.fit(X_train, y_train)

# 預測
y_pred = clf.predict(X_test)

# 計算準確率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.2f}')

5. 隨機森林

隨機森林是一種集成學習方法,通過構建多個決策樹并取其平均結果來提高預測的準確性和穩定性。

示例代碼:

from sklearn.datasets import load_boston
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 加載數據集
data = load_boston()
X = data.data
y = data.target

# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 創建隨機森林模型
reg = RandomForestRegressor(n_estimators=100)

# 訓練模型
reg.fit(X_train, y_train)

# 預測
y_pred = reg.predict(X_test)

# 計算均方誤差
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse:.2f}')

6. 線性回歸

線性回歸是一種用于預測連續值的監督學習算法。它通過擬合一條直線來最小化預測值與實際值之間的差異。

示例代碼:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 生成模擬數據
np.random.seed(42)
X = np.random.rand(100, 1) * 10
y = 2 * X + 1 + np.random.randn(100, 1)

# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 創建線性回歸模型
reg = LinearRegression()

# 訓練模型
reg.fit(X_train, y_train)

# 預測
y_pred = reg.predict(X_test)

# 計算均方誤差
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse:.2f}')

# 繪制結果
plt.scatter(X_test, y_test, color='blue', label='Actual')
plt.plot(X_test, y_pred, color='red', label='Predicted')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

7. K-均值聚類

K-均值聚類是一種無監督學習算法,用于將數據分為K個簇。它通過迭代地更新簇中心來最小化簇內樣本之間的距離。

示例代碼:

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 生成模擬數據
X, _ = make_blobs(n_samples=300, centers=4, random_state=42)

# 創建K-均值聚類模型
kmeans = KMeans(n_clusters=4)

# 訓練模型
kmeans.fit(X)

# 預測簇標簽
labels = kmeans.labels_

# 繪制結果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, c='red', marker='X')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('K-Means Clustering')
plt.show()

實戰案例:電影推薦系統

假設我們要構建一個簡單的電影推薦系統,使用用戶的歷史評分數據來推薦新的電影。我們將使用協同過濾算法,這是一種基于用戶行為的推薦方法。

數據準備:

import pandas as pd
from sklearn.model_selection import train_test_split
from surprise import Dataset, Reader, KNNBasic
from surprise.model_selection import cross_validate

# 加載數據
data = pd.read_csv('ratings.csv')

# 定義數據格式
reader = Reader(rating_scale=(1, 5))

# 加載數據集
data = Dataset.load_from_df(data[['userId', 'movieId', 'rating']], reader)

# 劃分訓練集和測試集
trainset, testset = train_test_split(data, test_size=0.2)

# 創建KNNBasic模型
algo = KNNBasic()

# 訓練模型
algo.fit(trainset)

# 預測
predictions = algo.test(testset)

# 評估模型
results = cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

推薦新電影:

def get_top_n_recommendations(user_id, n=10):
    # 獲取用戶未評分的電影
    user_ratings = data.df[data.df['userId'] == user_id]
    all_movies = data.df['movieId'].unique()
    unrated_movies = list(set(all_movies) - set(user_ratings['movieId']))

    # 預測評分
    predictions = [algo.predict(user_id, movie_id) for movie_id in unrated_movies]

    # 按預測評分排序
    top_n = sorted(predictions, key=lambda x: x.est, reverse=True)[:n]

    return top_n

# 獲取用戶1的前10個推薦電影
recommendations = get_top_n_recommendations(1)
for rec in recommendations:
    print(f'Movie ID: {rec.iid}, Predicted Rating: {rec.est:.2f}')

總結

本文介紹了7種常用的Python數據挖掘算法,包括決策樹、支持向量機、K-近鄰、樸素貝葉斯、隨機森林、線性回歸和K-均值聚類。每種算法都有詳細的理論講解和實際代碼示例,幫助你更好地理解和應用這些算法。最后,我們通過一個電影推薦系統的實戰案例,展示了如何將這些算法應用于實際問題中。

責任編輯:趙寧寧 來源: 小白PythonAI編程
相關推薦

2019-01-15 14:21:13

Python數據分析數據

2017-10-31 11:55:46

sklearn數據挖掘自動化

2010-04-09 09:55:43

Oracle sqlp

2009-03-16 10:29:45

數據挖掘過濾器Access

2023-11-03 18:01:59

Docker開源平臺

2022-05-23 11:13:02

Python工具

2021-10-18 13:29:52

Golang網站開發代碼

2021-03-02 10:54:08

高管IT投資首席信息官

2018-08-21 07:50:06

Python 大數據編程語言

2022-11-02 14:45:24

Python數據分析工具

2021-11-22 14:57:35

數據治理CIO數字化轉型

2011-10-14 14:24:26

Ruby

2009-09-03 18:12:14

Lisp介紹

2025-03-21 08:20:00

數據清洗Python編程

2019-07-10 11:35:46

防火墻技術云計算

2023-01-09 15:20:16

2025-02-10 10:29:32

2024-10-12 17:13:53

2018-05-24 08:47:15

數據存儲技巧

2020-10-19 12:55:59

機器學習技術人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲高清在线免费观看 | 日本黄色高清视频 | 手机av网 | 亚洲成av人片在线观看 | m豆传媒在线链接观看 | 看一级毛片视频 | 69xxx免费| 国产主播第一页 | 黄网站涩免费蜜桃网站 | 久www| 亚洲伊人久久综合 | 国产精品久久久久无码av | 成人三级在线观看 | 亚洲国产精品成人无久久精品 | 中文字幕在线第二页 | 国产亚洲一区二区在线观看 | 亚洲一一在线 | 亚洲激精日韩激精欧美精品 | 日韩精品视频一区二区三区 | 日韩在线小视频 | 精品免费国产 | 久在线| 精品久久香蕉国产线看观看亚洲 | 中文字幕一区二区三区四区五区 | 欧美激情亚洲天堂 | 天天干视频 | 麻豆久久久久久 | 久久国产视频网 | 国产精品91网站 | 国产中文视频 | 男女又爽又黄视频 | 亚洲啪啪一区 | 狠狠综合久久av一区二区小说 | 视频在线观看亚洲 | 精品一区二区三区免费视频 | 久久久久久国产 | 亚洲精品一区二区在线观看 | 丁香久久 | 日韩免费视频 | 天天草狠狠干 | 久久久成人一区二区免费影院 |