IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习100天 -> 正文阅读

[人工智能]机器学习100天

day1

import numpy as np
import pandas as pd
dataset = pd.read_csv('Data.csv',header = 0) # header是选从哪一行开始作为第一行,header=None是那个第一行是标签标签也算成数据
# dataset是一个dataframe类型

#dataset = pd.read_csv('Data.csv', names=["编号", "姓名", "地址", "日期"]) #names用于第一行不是列名的情况
# iloc[   :  ,  : ]    前面的冒号就是取行数,后面的冒号是取列数
X = dataset.iloc[ : , :-1].values  #加上.values就可以把这个处理成数组的形式来使用了
Y = dataset.iloc[ : , 3].values

## 由于有一些数据项是缺失的,所以我们需要对这些缺失的数据项补全
# from sklearn.preprocessing import Imputer 报错
# 在sklearn的0.22以上版本的sklearn去除了Imputer类,我们可以使用SimpleImputer类代替。或者降级回版本sklearn 0.19
print(X)
print("------------处理Nan值-------------------")
from sklearn.impute import SimpleImputer
# imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0)之前版本这里axis = 0表示按列进行
imputer = SimpleImputer(missing_values = np.nan, strategy = "mean") # 新版本得用np.nan
imputer = imputer.fit(X[ : , 1:3])
X[ : , 1:3] = imputer.transform(X[ : , 1:3])
# 返回值为SimpleImputer()类,通过fit(X)方法可以计算X矩阵的相关值的大小,以便填充其他缺失数据矩阵时进行使用
# 填补缺失值,一般使用该方法前要先用fit()方法对矩阵进行处理
print(X)
print("----------------将字母那种也处理成数据--------------------")
## 下一步处理标签值,由于yes/no这种数据没法利用,所以需要稍微处理一下
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
from sklearn.compose import ColumnTransformer
labelencoder_X = LabelEncoder()
X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0])
print(X)
print("----------------独热编码-------------------------------")
"""
ColumnTransformer(transformers, -->(名称,转换器,列)元组的列表,指定要应用于数据子集的转换器对象。

remainder=‘drop’, -->默认为’drop’,未指定的列将被删除.通过指定
remainder=‘passthrough’,所有未指定的剩余列transformers将自动通过)

"""
#onehotencoder = OneHotEncoder(categorical_features = [0]) #这个意思是应用到第0列上
#X = onehotencoder.fit_transform(X).toarray()
## sklearn变了好多,可以用ColumnTransformer
ct = ColumnTransformer([('my_ohe', OneHotEncoder(), [0])], remainder='passthrough')
# remainder = 'passthrough会把剩下的也加进来
X = ct.fit_transform(X)  #.toarray() 这里就不要加.toarray()了
labelencoder_Y = LabelEncoder()
Y =  labelencoder_Y.fit_transform(Y)
print(X)
print(Y)
print("----------------将数据集分割为训练集和测试集---------------------------")
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state=0)
# test_size表示测试集的比例,同理train_size表示训练集的比例
# random_state这一项只要有个值就是每次划分都一样,如果没有值,每次划分就不一样
print(X_train)
print("*********")
print(X_test)
print("**********")
print(Y_train)
print("********")
print(Y_test)
print("-----------特征缩放-------------------")
'''
大多数机器学习算法在计算中使用两个点之间的欧氏距离,特征在幅度,单位和范围上引起了很大的变化
所以我们需要一个特征缩放
'''

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)
print(X_train)
print("****")
print(X_test)

import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split

class StandScale:
    def __init__(self):
        self.mean_ = None
        self.scale_ = None
    def fit(self,x):
        self.mean_ = np.array([np.mean(x[:,i]) for i in range(x.shape[1])]) # 每一列的均值
        self.scale_ = np.array([np.std(x[:,i]) for i in range(x.shape[1])]) # 每一列的标准差
    def transform(self,x):
        col_num = x.shape[1]
        for i in range(col_num):
            x[:,i] = (x[:,i] - self.mean_[i])/self.scale_[i]


data = datasets.load_iris()
#print(data)
data_x = data.data
data_y = data.target
data_name = data.target_names
print(type(data_y)) #<class 'numpy.ndarray'>
x_train,x_test,y_train,y_test = train_test_split(data_x,data_y, test_size = 0.2)
print(np.mean(data_x[:,1]))
print(data_x.shape)  # 返回的是个元组
print(data_x.shape[1])
a = np.array([np.mean(data_x[:,i]) for i in range(data_x.shape[1])])
print(a)
standscale = StandScale()
standscale.fit(data_x)
standscale.transform(data_x)
print(data_x)


  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:22:35  更:2022-04-09 18:23:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:46:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码